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

Ios 处理来自移动麦克风的音频输入,而不将其保存到文件中,ios,xamarin,signal-processing,audio-recording,avaudiorecorder,Ios,Xamarin,Signal Processing,Audio Recording,Avaudiorecorder,我正在开发一个移动应用程序,它可以实时对来自麦克风的音频输入进行基本分析。但是,使用“AVAudioRecorder”(如图和中所示)进行此操作的通常方法要求您首先将其保存到文件中 由于该应用程序可以长时间运行,并且一天可以使用多次,因此我希望避免手机中出现大量音频文件或过大的音频文件。然而,我似乎找不到绕过它的方法。在互联网上搜索解决方案总是可以找到如何将音频保存到文件的解决方案,而不是避免保存到文件并使用某种缓冲区 任何指针都会非常有用 您可以在AVAudioRecorder实例中使用/de

我正在开发一个移动应用程序,它可以实时对来自麦克风的音频输入进行基本分析。但是,使用“AVAudioRecorder”(如图和中所示)进行此操作的通常方法要求您首先将其保存到文件中

由于该应用程序可以长时间运行,并且一天可以使用多次,因此我希望避免手机中出现大量音频文件或过大的音频文件。然而,我似乎找不到绕过它的方法。在互联网上搜索解决方案总是可以找到如何将音频保存到文件的解决方案,而不是避免保存到文件并使用某种缓冲区


任何指针都会非常有用

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

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

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


您也可以使用AVAudioEngine上的水龙头。请参阅苹果的文档:

谢谢!正在努力在C#中实现AudioQueue!嗯,这是真的,但是如果我们一记录下来就把数据扔掉。。。那为什么一开始就要记录呢?这取决于你想做什么。也就是说,您可以使用它来获得麦克风的平均功率或峰值功率