何时使用 AVAudioPlayer 方法 prepareToPlay()

Posted

技术标签:

【中文标题】何时使用 AVAudioPlayer 方法 prepareToPlay()【英文标题】:When to use AVAudioPlayer method prepareToPlay() 【发布时间】:2015-09-22 17:12:14 【问题描述】:

如果我实例化了一个 AVAudioPlayer 对象,设置了它的属性,称为 prepareToPlay(),并调用了 play() 方法,但随后更改了我的 AVAuidioPlayer 对象的属性,我是否需要再次调用 prepareToPlay()?

【问题讨论】:

我觉得你应该叫它!!!! 播放结束前是否更改属性? @antonio,对不起,这是一个好问题,播放是无限循环的,所以当我更改属性时播放还没有完成。如果它停止了,我知道我将不得不再次调用 prepareToPlay()。 【参考方案1】:

不,你没有。这是来自方法 play 的类参考中的讨论部分:

如果音频播放器尚未准备好播放,则调用此方法会隐式调用 prepareToPlay 方法。

此外,这是该方法的摘要:

异步播放声音。

当我们查看AVAudioPlayer 的属性时,我们可以看到它们中没有一个具有关于原子性的显式属性,这使得它们默认为atomic。虽然播放是异步的,但您的播放不会受到属性修改的影响(而异步操作将锁定这些属性)。另外,这个方法会隐式调用prepareToPlay,即使你自己没有这样做。

【讨论】:

以上是关于何时使用 AVAudioPlayer 方法 prepareToPlay()的主要内容,如果未能解决你的问题,请参考以下文章

何时在 django 中使用 pre_save、save、post_save?

iPhone:如何使用 AVAudioPlayer 检测 Iphone/Ipod 音量级别

多视图应用程序中的 AVAudioPlayer 问题

iOS mp3 (AVaudioPlayer) 的比特率值

构造函数与 preStart:何时使用哪个?

如何让 avaudioplayer 在点击新闻歌曲时停止播放上一首歌曲?