2012-04-02 95 views
1

我試圖回放,我在Objective-C已經創建了樣本音頻值的的NSArray。我已經生成了沒有問題的值,但是我怎樣才能通過iPhone回放它們?播放緩衝 - iOS設備

由於

回答

1

我建議將NSArray轉換爲NSData對象,然後使用AVAudioPlayer方法initWithData:error:see here)加載爲可播放的音頻。 AVAudioPlayer的優點是與音頻隊列和音頻單元方法相關的使用非常簡單。

如何將NSArray轉換爲NSData取決於您的樣本類型(this SO post可能會告訴您如何完成此操作,儘管NSKeyedArchiver歸檔過程可能會使用您的樣本)。我建議,如果您的示例生成過程允許,只需將您的示例創建爲NSData對象並跳過這樣的轉換即可。

1

複製的值出的NSArray成適當縮放的PCM採樣的數組c。然後,你可以在前面加上RIFF頭轉換這個數組爲WAV文件和播放使用AVAudioPlayer這個文件,或者你可以直接喂PCM樣本到音頻隊列或RemoteIO音頻單元C數組緩衝區中的音頻回調。