这就是我想做的事情:
从麦克风获取音频
这就是我试图去那里的方式:
在TPAACAudioConverter的处理线程中,我将其替换为:
OSStatus status = ExtAudioFileWrite(destinationFile, numFrames, &fillBufList);
用这个:
OSStatus status = ExtAudioFileWrite(destinationFile, numFrames, &fillBufList);
UInt32 framesWritten = numFrames;
totalFramesWritten += framesWritten;
AudioBufferList readData;
readData.mNumberBuffers = 1;
ExtAudioFileSeek(destinationFile, totalFramesWritten - framesWritten);
OSStatus readStatus = ExtAudioFileRead(destinationFile, &numFrames, &readData);
ExtAudioFileSeek(destinationFile, totalFramesWritten);
NSLog(@"Bytes read=%d", numFrames);
但我得到的是从文件中读取的0 numFrame。
对于我可能做错了什么或任何关于实现我需要的替代路径的建议有任何想法?
答案 0 :(得分:1)
问题在于,无论ExtAudioFile在引擎盖下做什么都不允许寻找一个可以写作的文件。如果您查看ExtAudioFileSeek
的文档,它会说"此函数的文件打开以进行写入的行为目前尚未定义"。
您可以通过直接使用更具可扩展性(和难度)Audio File Services和Audio Converter Services而不是方便的扩展音频文件服务来解决此问题。
答案 1 :(得分:0)
我放弃了这种方法,并重用Apple的SpeakHere示例中的AQRecorder类。
该项目可在此处https://github.com/robovm/apple-ios-samples/tree/master/SpeakHere。