我在調查aurioTouch2示例代碼。如何更改aurioTouch項目以將記錄寫入.caff或.wav文件
我想改變smth以記錄來自麥克風的音頻並將這些數據寫入.caff或.wav文件。所以後來我可以用AVAudioPlayer播放這個音頻。
我的想法是在applicationDidFinishLaunching中使用AVAudioRecorder,但可能它不是最好的解決方案,或者甚至可能不是這樣(我沒有試過使用AVAudioRecorder,因爲我認爲最有可能它不是最好的主意)。 我試着寫字節數據
void FFTBufferManager::GrabAudioData(AudioBufferList *inBL)
{
memcpy(mAudioBuffer+mAudioBufferCurrentIndex, inBL->mBuffers[0].mData, bytesToCopy);
// after this I copy to my own buffer and collect all the data during 30 seconds
}
所以你看,我複製到我自己的緩衝區,並在30秒期間收集的所有數據。比我寫數據到.caff文件。這是行不通的。
更新:
,或者可以是播放音頻的二進制數據的方式(不編碼爲.waf或.caff音頻)存在嗎?
關於「有幾種不同的方法可以做到這一點,一種方法是使用ExtAudioFileWriteAsync。」:要使用它,你應該使用AudioBufferList。但在這種情況下,您將遇到另一個問題:AudioBufferList只有0.1秒的音頻數據數據,問題是如何組合此AudioBufferList以獲取所有數據。 – 2012-07-17 09:55:46
RecordAudioToFile適用於MacOS,不適用於iOS – 2012-07-17 09:57:14
是的,但是它使用的AudioToolbox API,您將使用的適用於iOS的 – 2012-07-17 10:33:12