2012-06-05 35 views
1

我需要顯示使用MPMoviePlayerControllerUILabel中播放的視頻的當前進度。我需要在UILable中顯示當前的進度和視頻的總持續時間。它應該看起來像1.25/5.00?我需要在播放視頻時顯示此內容。我可以直接用默認進度條顯示它,但我需要禁用它。由於我無法禁用它,因此我打算在UILabel中顯示視頻的當前進度。有人可以提供任何建議嗎?如何顯示在UILabel中使用MPMoviePlayer播放的視頻的當前進度?

+0

這聽起來像你有兩個問題。 #1)如何禁用默認進度條和#2)如何獲取當前進度作爲一個屬性,您可以將其放入其他位置的標籤中。我在這裏糾正? –

+0

@MichaelDautermann:是的Michael。我實際上正在尋找如何禁用默認進度欄。但我無法找到如何做到這一點。所以我只是想用MPMovieControlStyleNone隱藏控件。但我的要求是絕對的視頻進度... –

回答

3

得到的答案...

當實例視頻播放器...

self.moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL]; 

//添加標籤,以顯示進度的視頻....

progressLabel = [[UILabel alloc]initWithFrame:CGRectMake(125,275,70,25)]; 
progressLabel.backgroundColor = [UIColor clearColor]; 
[progressLabel setTextColor:[UIColor whiteColor]]; 
[self.view addSubview:progressLabel]; 

//設置一個計時器..

[NSTimer scheduledTimerWithTimeInterval:1.0f 
           target:self 
           selector:@selector(updatePlaybackTime:) 
           userInfo:nil 
           repeats:YES]; 

,並在方法updatePlaybackTime:....

- (void)updatePlaybackTime:(NSTimer*)theTimer { 
    progressLabel.text = [NSString stringWithFormat:@"%f",self.moviePlayerController.currentPlaybackTime]; 
} 

Done..U將與視頻進度更新標籤...

+0

是的這項工作,但計時器將繼續,即使你暫停播放器是什麼意思,你是在浪費資源;) –

+0

和你必須使用MPMoviePlayerViewController ...是比MPMoviePlayerController更好;) –

+0

我有另一個通知,當視頻暫停和停止時通知。所以在這種方法中,我使計時器無效。我只是沒有提到,在上面的例子....除此之外,MPMoviePlayerViewController與MPMoviePlayerController有什麼不同?除了MPMoviePlayerController提供的外,還有什麼額外的功能? –

2

爲了隱藏在post後面的默認進度條結帳。
爲了在鏈接1,2之後自定義進度欄結帳。

3

以及設定的進度和持續時間,ü可以播放視頻,然後更新進度標籤的值之後調用自守望......

設置觀察者看到當玩家開始玩和在選擇器中你給觀察者打電話,這個觀察者應該看起來像這樣;

-(void)watcher{ 
    urProgressLabel.text = [NSString stringWithFormat:@"%d",movieplayer.currentPlaybackTime]; 
    [self performSelector:@selector(watcher) withObject:nil afterDelay:0.5];//to update the value each 0.5 seconds 
} 

希望它幫助;)

相關問題