2013-04-04 33 views

回答

4

由于法说

prepareToPlay - 不打首发,但它是在过程中进行播放任何(视频/音频)

play - 说这是做字符串播放任何(视频/音频)

的文件说:

发挥

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

- (void)play 

讨论
如果回放先前暂停,该方法继续播放它离开的地方;否则,此方法从头开始播放第一个可用项目 。

如果电话播放器在您拨打 方法时未准备好播放,则此方法首先准备好电影播放器​​,然后启动 播放。要最大限度地缩短播放延迟,请在调用此方法之前调用prepareToPlay方法 。

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

Availability在iOS 3.2及更高版本中提供。宣布 MPMediaPlayback.h

prepareToPlay

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

- (void)prepareToPlay 

讨论
如果一个电影播放器​​是不是已经准备好打的时候你 调用play方法,该方法会自动调用此方法。 但是,为了尽量减少播放延迟,请在致电 播放之前调用此方法。

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

Availability在iOS 3.2及更高版本中提供。

宣布MPMediaPlayback.h

更多信息read This Official Documentation.

+2

但在这两种情况下视频播放。 视频可以在两种语法中播放...... – Myaaoonn 2013-04-04 12:10:49

+0

如果您复制并过去了文档的各个部分,为什么不在其中添加一些额外的功能并将链接添加到该文档中呢? – vikingosegundo 2013-04-04 12:30:08

+4

@Myaaoonn我有同样的问题,看起来像一个'prepareToPlay'自动播放本地内容的错误。我通过将'shouldAutoplay'设置为'NO'来解决它。 – yonilevy 2014-03-29 14:08:46

1

prepareToPlay

准备的电影播放器​​进行播放。 (必填)如果电影播放器​​ 在您调用播放方法时尚未准备播放,则该 方法会自动调用此方法。但是,要延迟播放时间,请在调用播放之前调用此方法。

发挥当前项目的

同修播放。 (必填)如果以前暂停的播放为 ,则此方法会在停止播放的位置继续播放; 否则,此方法播放第一个可用项目,从 开始。如果您在调用此方法时没有准备好播放电影播放器​​,则此方法首先准备好电影播放器​​,然后开始播放 。要最大限度地减少播放延迟,请在调用此方法之前调用prepareToPlay 方法。

请访问MPMediaPlayback Protocol Reference

2

要通过执行耗时的操作的前期减少播放延迟。

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

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

鉴于上述情况,play方法可以在用户提名时立即开始播放多媒体内容。显然,如果媒体尚未准备好,系统会在play开始时为您拨打prepareForPlayback进行必要的准备。

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

在模拟世界中,一种简单的并行可能类似于将磁带穿入卷轴,卷绕卷轴并预拉伸磁带,将磁头定位在内容的开始处。然后当您按下Play时,几乎立即听到声音。

+0

什么时候是视频文件实际加载到内存和解码过程中发生的? – 2014-01-11 09:11:17

+0

除了加载标题和元数据外,'prepareForPlayback'还将预缓冲视频和音频内容的开始。可能会有1秒缓冲的视频和音频数据被加载和解码,因此可以在调用'play'后立即开始播放。一旦播放开始,更多的块被加载,解码并通过流水线进行流式传输。 – gavinb 2014-01-11 22:50:24