如何确切知道为什么声音开始播放?

时间:2011-02-18 22:10:08

标签: iphone

我需要播放mp3格式的音频片段,并将我的应用中的某些内容与播放的音频同步。我应该使用iPhone SDK中的哪些音频工具让我准确知道所选声音何时开始播放?

有时候AVAudioPlayer我注意到当声音开始播放时,从我命令播放器播放时,以及当我实际听到声音时(我猜它在那段时间内正在加载声音)有一点延迟。我找不到AVAudioPlayer的“准备播放”委托方法。

任何建议/指示赞赏。

3 个答案:

答案 0 :(得分:3)

如果您想尽量减少任何潜在的延迟,您应该在您需要之前使用AVAudioPlayer课程prepareToPlay方法(如果您还没有这样做)声音然后在您想要开始播放时调用play

答案 1 :(得分:1)

您需要多近的同步?对于mp3,总会有一些解码不确定性,所以你需要提前准备ToPlay来删除其中的一部分。

但是,对于尽可能低的延迟,更好的方法是将原始PCM样本提供给音频单元RemoteIO API,这通常可以使您的延迟时间超过60 Hz视频帧。

答案 2 :(得分:0)

要准确同步音频播放,您需要使用音频队列服务。它是一个C接口,提供更精细的音频控制。我无法告诉你究竟如何同步,因为我没有相关方面的经验,也许其他人可以提供帮助。但是,如果你看看文档,希望能引导你朝着正确的方向前进。