处理来自移动麦克风的音频输入而不将其保存到文件

Process audio input from a mobile microphone without saving it to a file

我正在开发一款移动应用程序,它可以实时对来自 microphone 的音频输入进行基本分析。但是,如 guide and the API 所示,使用“AVAudioRecorder”执行此操作的通常方法要求您先将其保存到文件中。

由于该应用程序需要长时间运行并且一天要使用多次,因此我想避免 phone 中包含许多音频文件或太大的音频文件。但是,我似乎无法找到解决方法。在互联网上搜索解决方案总是会找到如何将音频保存到文件的解决方案,而不是避免保存到文件并使用某种缓冲区。

任何指点都会非常有帮助!

您可以使用 /dev/null 作为 AVAudioRecorder 实例中的路径。这样它就不会保存到文件中,而只是丢弃数据。

var url = NSUrl.FromString("/dev/null");
var recorder = new AVAudioRecorder(url, settings, out error);

iOS 音频单元和音频队列 API 都允许实时处理音频输入的短缓冲区,而无需保存到文件中。

您还可以在 AVAudioEngine 上使用点击。请参阅 Apple 的文档:https://developer.apple.com/library/ios/samplecode/AVAEMixerSample/Introduction/Intro.html