2011-02-18 65 views
0

我需要播放MP3格式的音頻剪輯,並將我應用中的某些內容與正在播放的音頻同步。我應該使用iPhone SDK中的哪些音頻工具來讓我準確知道所選聲音何時開始播放?如何正確知道聲音開始播放的原因?

有時使用AVAudioPlayer時,我注意到當聲音開始播放時,從我命令播放器播放起,以及當我實際聽到聲音(我猜測它正在加載聲音的時間) 。沒有「準備玩」的委託方法,我可以找到AVAudioPlayer。

任何建議/指針讚賞。

回答

0

要準確同步您的音頻播放,您需要使用音頻隊列服務。這是一個C接口,可以對音頻進行更細緻的控制。我無法完全告訴你如何同步,因爲我沒有這方面的經驗,也許有人可以提供幫助。但是,如果你看看這些文件,希望能引導你朝正確的方向發展。

+0

這就是我所需要的,但它顯然需要更多的工作來實施和記錄不當。一本新書形式的safari正在開發中,但尚未發佈。謝謝。 – TigerCoding 2011-02-18 23:04:37

+0

當然可以。我不確定同步部分,但AudioQueueServices的播放部分不像看起來那麼難。儘管如此:) – 2011-02-18 23:06:19

3

如果你希望儘量減少任何潛在的延遲,你應該使用AVAudioPlayerprepareToPlay方法(如果你沒有這樣做)之前,當你需要的聲音,然後調用play當你想播放開始。

1

您需要多近距同步?隨着MP3,總是有一些解碼的不確定性,所以你需要prepareToPlay提前刪除一些。

但是,對於可能的最低延遲,更好的辦法是將原始PCM採樣送入音頻單元RemoteIO API,這通常可以讓您獲得比一個60 Hz視頻幀延遲更好的效果。