2010-04-04 165 views
1

我正在查看蘋果公司針對iPhone的'aurioTouch'示例,我想播放mp3或wav而不是使用內置麥克風。我對iPhone編程的音頻部分非常陌生,但我想我需要修改SetupRemoteIO(...)函數,並用播放文件的自定義AudioComponent替換名爲'comp'的AudioComponent。基本上我希望應用程序的功能與原始的完全相同,但是以音頻文件作爲輸入而不是麥克風。使用RemoteIO和音頻單元播放音頻文件

回答

3

您只需將音頻文件轉換爲pcm數據,然後在播放回調期間將該數據饋送到RemoteIO接口。

要讀取您的音頻文件,您需要使用ExtAudioFileOpenURL和ExtAudioFileRead。另外請確保使用ExtAudioFileSetProperty設置音頻格式以轉換爲您的目標PCM格式(應打包,有符號整數PCM數據)。

回放只需要響應RemoteIO回調(應該與aurioTouch的示例相同)併爲其加載PCM數據。

唯一的另一個棘手的部分是,加載一個完整的mp3文件作爲PCM可能佔用大量的內存。您可能需要編寫一個加載線程,以便您只需加載相關的MP3片段即可滿足您的內存要求。