2012-08-03 55 views
8

雖然使用MPMoviePlayerController有什麼方法可以找到在緩衝視頻的同時完成了多少數據百分比?MPMoviePlayerController%data bufferd

我的目標是顯示進度條,顯示已加載多少百分比並顯示百分比的數字計數。

在此先感謝。

回答

6

您是否檢查過MPMoviePlayerController的Apple文檔?

http://developer.apple.com/library/ios/#documentation/mediaplayer/reference/MPMoviePlayerController_Class/Reference/Reference.html

在這裏,你可以找到兩個屬性,可以幫助你。 durationplayableDuration,這不是一個完全合適的,但非常接近。你需要實現的一件事是智能查詢這些屬性的方法,例如,也許你可能想要使用NSTimer並每0.5秒從你的MPMovePlayerController實例中獲取信息。

例如,假設你有一個叫做MPMoviePlayerControllermyPlayer財產,你將開始它在視圖控制器等你的init方法...

然後其次是這樣的:

self.checkStatusTimer = [NSTimer timerWithTimeInterval:0.5 
               target:self 
               selector:@selector(updateProgressUI) 
               userInfo:nil 
               repeats:YES]; 

而且這樣的方法來更新UI:

- (void)updateProgressUI{ 
    if(self.myPlayer.duration == self.myPlayer.playableDuration){ 
     // all done 
     [self.checkStatusTimer invalidate]; 
    } 
    int percentage = roundf((myPlayer.playableDuration/myPlayer.duration)*100); 
    self.progressLabel.text = [NSString stringWithFormat:@"%d%%", percentage]; 
} 

注意雙百分號我們-stringWithFormat ,這是另一種格式說明符,用於解析%符號。有關格式說明符see here的更多信息。

+0

您能否給我任何示例代碼?我對這些東西不瞭解。我希望你不要打擾。 – 2012-08-03 14:17:06

+0

我更新了答案以提供示例 – Daniel 2012-08-03 14:25:19

+0

Hai daniel,我看到您的回覆,我認爲它工作正常。不幸的是,我正在使用一個類文件,現在可以嘗試使用這些代碼。無論如何感謝您的努力和善良。 – 2012-08-03 16:23:37