我正在调查aurioTouch2示例代码。
我想更改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音频)的方式?
答案 0 :(得分:1)
有几种不同的方法可以做到这一点。一种方法是使用ExtAudioFileWriteAsync。
Apple提供了一个演示如何执行此操作的示例项目。这是RecordAudioToFile。
还要查看其他一些帖子,例如: Can anybody help me in recording iPhone output sound through Audio Unit
答案 1 :(得分:0)
我不确定我是否正确使用你,但你不能将缓冲区写入磁盘。 CAF和WAV文件需要自己的标头和音频数据的编码。 AVRecorder
课程为您完成此任务。关于这个主题有很多问题。请参阅示例this question。