2012-08-03 57 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