请让我知道MPMoviePlayerController
在视频播放时prepareToPlay
& play
方法之间的差异。差异和发挥的MPMoviePlayerController
的语法是:
[moviePlayer prepareToPlay];
而且
[moviePlayer play];
请让我知道MPMoviePlayerController
在视频播放时prepareToPlay
& play
方法之间的差异。差异和发挥的MPMoviePlayerController
的语法是:
[moviePlayer prepareToPlay];
而且
[moviePlayer play];
由于法说
prepareToPlay
- 不打首发,但它是在过程中进行播放任何(视频/音频)。
play
- 说这是做字符串播放任何(视频/音频)。
的文件说:
发挥
当前项目的创始播放。 (必需)
- (void)play
讨论
如果回放先前暂停,该方法继续播放它离开的地方;否则,此方法从头开始播放第一个可用项目 。如果电话播放器在您拨打 方法时未准备好播放,则此方法首先准备好电影播放器,然后启动 播放。要最大限度地缩短播放延迟,请在调用此方法之前调用prepareToPlay方法 。
要在电影播放器准备播放时收到通知,请注册 MPMoviePlayerLoadStateDidChangeNotification通知。然后您可以通过访问电影播放器的loadState属性来检查加载状态 。
Availability在iOS 3.2及更高版本中提供。宣布 MPMediaPlayback.h
prepareToPlay
准备播放的电影播放器。 (必填)
- (void)prepareToPlay
讨论
如果一个电影播放器是不是已经准备好打的时候你 调用play方法,该方法会自动调用此方法。 但是,为了尽量减少播放延迟,请在致电 播放之前调用此方法。调用此方法可能会中断电影播放器的音频会话。 有关中断以及如何适应它们的信息,请参阅音频 会话编程指南。
Availability在iOS 3.2及更高版本中提供。
宣布MPMediaPlayback.h
prepareToPlay
准备的电影播放器进行播放。 (必填)如果电影播放器 在您调用播放方法时尚未准备播放,则该 方法会自动调用此方法。但是,要延迟播放时间,请在调用播放之前调用此方法。
发挥当前项目的
同修播放。 (必填)如果以前暂停的播放为 ,则此方法会在停止播放的位置继续播放; 否则,此方法播放第一个可用项目,从 开始。如果您在调用此方法时没有准备好播放电影播放器,则此方法首先准备好电影播放器,然后开始播放 。要最大限度地减少播放延迟,请在调用此方法之前调用prepareToPlay 方法。
要通过执行耗时的操作的前期减少播放延迟。
为了播放多媒体文件,例如QuickTime电影,在文件实际播放之前,需要进行不平凡的加载和处理。分开使用play
和prepareToPlay
方法允许开发人员选择何时可能执行涉及回放的昂贵操作,以最小化当用户实际按下播放按钮时的延迟。
例如,标题需要被读取和解析,并提取元数据。可能需要读取章节索引,并且播放器可能需要查找文件末尾以读取块偏移表,读取缩略图,海报帧等等。此外,为了在用户按下播放时启用快速播放,系统可能希望加载,解压并缓存第一秒左右的音频和视频内容。所有这些都会花费大量的时间,并且将由prepareToPlayback
方法执行。
鉴于上述情况,play
方法可以在用户提名时立即开始播放多媒体内容。显然,如果媒体尚未准备好,系统会在play
开始时为您拨打prepareForPlayback
进行必要的准备。
例如,在您的应用程序中,用户可能会一步选择多媒体剪辑。您可以立即致电prepareToPlay
,并在预览窗口中显示海报框。然后,当用户按下Play>
按钮时,内容已准备就绪。
在模拟世界中,一种简单的并行可能类似于将磁带穿入卷轴,卷绕卷轴并预拉伸磁带,将磁头定位在内容的开始处。然后当您按下Play时,几乎立即听到声音。
什么时候是视频文件实际加载到内存和解码过程中发生的? – 2014-01-11 09:11:17
除了加载标题和元数据外,'prepareForPlayback'还将预缓冲视频和音频内容的开始。可能会有1秒缓冲的视频和音频数据被加载和解码,因此可以在调用'play'后立即开始播放。一旦播放开始,更多的块被加载,解码并通过流水线进行流式传输。 – gavinb 2014-01-11 22:50:24
但在这两种情况下视频播放。 视频可以在两种语法中播放...... – Myaaoonn 2013-04-04 12:10:49
如果您复制并过去了文档的各个部分,为什么不在其中添加一些额外的功能并将链接添加到该文档中呢? – vikingosegundo 2013-04-04 12:30:08
@Myaaoonn我有同样的问题,看起来像一个'prepareToPlay'自动播放本地内容的错误。我通过将'shouldAutoplay'设置为'NO'来解决它。 – yonilevy 2014-03-29 14:08:46