请让我知道视频播放时prepareToPlay
与play
方法之间的区别。MPMoviePlayerController
语法是:
[moviePlayer prepareToPlay];
和
[moviePlayer play];
请让我知道视频播放时prepareToPlay
与play
方法之间的区别。MPMoviePlayerController
语法是:
[moviePlayer prepareToPlay];
和
[moviePlayer play];
正如方法所说
prepareToPlay
- 没有开始播放,但正在播放任何内容(视频/音频)。
play
- 说它是播放任何东西(视频/音频)的字符串。
正如文件所说:
玩
开始播放当前项目。(必需的)
- (void)play
讨论
如果之前暂停播放,此方法会从中断处恢复播放;否则,此方法从头开始播放第一个可用项目。如果调用此方法时电影播放器未准备好播放,则此方法先准备好电影播放器,然后开始播放。要最大限度地减少播放延迟,请在调用此方法之前调用 prepareToPlay 方法。
要在电影播放器准备好播放时收到通知,请注册 MPMoviePlayerLoadStateDidChangeNotification 通知。然后,您可以通过访问电影播放器的 loadState 属性来检查加载状态。
可用性 适用于 iOS 3.2 及更高版本。在 MPMediaPlayback.h 中声明
准备播放
准备播放电影播放器。(必需的)
- (void)prepareToPlay
讨论
如果调用 play 方法时电影播放器尚未准备好播放,则该方法会自动调用此方法。但是,为了尽量减少播放延迟,请在调用 play 之前调用此方法。调用此方法可能会中断电影播放器的音频会话。有关中断以及如何回应中断的信息,请参阅音频会话编程指南。
可用性 适用于 iOS 3.2 及更高版本。
在 MPMediaPlayback.h 中声明
欲了解更多信息,请阅读本官方文档。
通过预先执行昂贵的操作来最小化播放延迟。
为了播放多媒体文件,例如 QuickTime 电影,在实际播放文件之前需要进行大量的加载和处理。拥有单独的play
和prepareToPlay
方法允许开发人员选择何时可以执行涉及播放的潜在昂贵操作,以最小化用户实际按下播放按钮时的延迟。
例如,需要读取和解析标头,并提取元数据。可能需要读取章节索引,并且玩家可能需要查找文件末尾以读取块偏移表、读取缩略图、海报框架等等。此外,为了在用户按下播放时启用快速播放,系统可能希望加载、解压缩和缓存第一秒左右的音频和视频内容。所有这些都可能需要相当长的时间,并且将由该prepareToPlayback
方法执行。
综上所述,该play
方法可以在用户指定时立即开始播放多媒体内容。显然,如果媒体尚未准备好,系统会prepareForPlayback
在开始时要求您play
进行这些必要的准备。
例如,在您的应用程序中,用户可能会一步选择多媒体剪辑。您可以立即致电prepareToPlay
,并在预览窗口中显示海报框架。然后当用户按下Play>
按钮时,内容就准备好了。
模拟世界中的一个简单化的平行可能类似于将磁带穿入卷轴,卷起卷轴并预张紧磁带,将磁带头定位在内容的开头。然后,当您按下播放键时,几乎立即就能听到声音。
准备播放
准备播放电影播放器。(必需)如果在调用 play 方法时电影播放器尚未准备好播放,则该方法会自动调用此方法。但是,为了尽量减少播放延迟,请在调用 play 之前调用此方法。
玩
开始播放当前项目。(必需)如果之前暂停播放,则此方法从中断处恢复播放;否则,此方法从头开始播放第一个可用项目。如果调用此方法时电影播放器未准备好播放,则此方法先准备好电影播放器,然后开始播放。要最大限度地减少播放延迟,请在调用此方法之前调用 prepareToPlay 方法。