我在调查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