3

请让我知道视频播放时prepareToPlayplay方法之间的区别。MPMoviePlayerController

语法是:

[moviePlayer prepareToPlay];

[moviePlayer play];
4

3 回答 3

4

正如方法所说

prepareToPlay- 没有开始播放,但正在播放任何内容(视频/音频)

play- 说它是播放任何东西(视频/音频)的字符串。

正如文件所说:

开始播放当前项目。(必需的)

- (void)play  

讨论
如果之前暂停播放,此方法会从中断处恢复播放;否则,此方法从头开始播放第一个可用项目。

如果调用此方法时电影播放器​​未准备好播放,则此方法先准备好电影播放器​​,然后开始播放。要最大限度地减少播放延迟,请在调用此方法之前调用 prepareToPlay 方法。

要在电影播放器​​准备好播放时收到通知,请注册 MPMoviePlayerLoadStateDidChangeNotification 通知。然后,您可以通过访问电影播放器​​的 loadState 属性来检查加载状态。

可用性 适用于 iOS 3.2 及更高版本。在 MPMediaPlayback.h 中声明

准备播放

准备播放电影播放器​​。(必需的)

- (void)prepareToPlay

讨论
如果调用 play 方法时电影播放器​​尚未准备好播放,则该方法会自动调用此方法。但是,为了尽量减少播放延迟,请在调用 play 之前调用此方法。

调用此方法可能会中断电影播放器​​的音频会话。有关中断以及如何回应中断的信息,请参阅音频会话编程指南。

可用性 适用于 iOS 3.2 及更高版本。

在 MPMediaPlayback.h 中声明

欲了解更多信息,请阅读本官方文档。

于 2013-04-04T12:08:40.833 回答
2

通过预先执行昂贵的操作来最小化播放延迟。

为了播放多媒体文件,例如 QuickTime 电影,在实际播放文件之前需要进行大量的加载和处理。拥有单独的playprepareToPlay方法允许开发人员选择何时可以执行涉及播放的潜在昂贵操作,以最小化用户实际按下播放按钮时的延迟。

例如,需要读取和解析标头,并提取元数据。可能需要读取章节索引,并且玩家可能需要查找文件末尾以读取块偏​​移表、读取缩略图、海报框架等等。此外,为了在用户按下播放时启用快速播放,系统可能希望加载、解压缩和缓存第一秒左右的音频和视频内容。所有这些都可能需要相当长的时间,并且将由该prepareToPlayback方法执行。

综上所述,该play方法可以在用户指定时立即开始播放多媒体内容。显然,如果媒体尚未准备好,系统会prepareForPlayback在开始时要求您play进行这些必要的准备。

例如,在您的应用程序中,用户可能会一步选择多媒体剪辑。您可以立即致电prepareToPlay,并在预览窗口中显示海报框​​架。然后当用户按下Play>按钮时,内容就准备好了。

模拟世界中的一个简单化的平行可能类似于将磁带穿入卷轴,卷起卷轴并预张紧磁带,将磁带头定位在内容的开头。然后,当您按下播放键时,几乎立即就能听到声音。

于 2013-04-04T12:44:05.773 回答
1

准备播放

准备播放电影播放器​​。(必需)如果在调用 play 方法时电影播放器​​尚未准备好播放,则该方法会自动调用此方法。但是,为了尽量减少播放延迟,请在调用 play 之前调用此方法。

开始播放当前项目。(必需)如果之前暂停播放,则此方法从中断处恢复播放;否则,此方法从头开始播放第一个可用项目。如果调用此方法时电影播放器​​未准备好播放,则此方法先准备好电影播放器​​,然后开始播放。要最大限度地减少播放延迟,请在调用此方法之前调用 prepareToPlay 方法。

请访问MPMediaPlayback 协议参考

于 2013-04-04T12:11:19.273 回答