AVAudioPlayer在iPhone中准备了PlayTo回调

hpi*_*que 5 iphone audio avaudioplayer ios

是否有可能AVAudioPlayer在通话后知道何时准备就绪prepareToPlay

如果没有,是否还有其他类提供此功能?

我想实现这样的事情:

- (void) prepare {
    [audioPlayer prepareToPlay];
    // Update UI to indicate that the audio is being prepared
}

- (void) onAudioReady {
    // Update UI to indicate that the audio is ready
}
Run Code Online (Sandbox Code Playgroud)

小智 0

这个类可以帮助初始化音频,然后在 onAudioReady 方法中立即播放它。

https://github.com/nicklockwood/SoundManager

参考这篇文章:/sf/answers/729243371/

或者

您可以检查[audioPlayerprepareToPlay]中的BOOL结果,以查看音频硬件是否已根据文档进行初始化。如果结果是“是”,您可以生成一些 UI 供用户查看。

prepareToPlay 通过预加载音频播放器的缓冲区来准备播放。

  • (BOOL)prepareToPlay 返回值 成功时返回 YES,失败时返回 NO。

讨论 调用此方法会预加载缓冲区并获取播放所需的音频硬件,从而最大限度地减少调用 play 方法和开始声音输出之间的延迟。

调用 stop 方法或允许声音完成播放会撤消此设置。