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

Posted

技术标签:

【中文标题】处理来自移动麦克风的音频输入而不将其保存到文件中【英文标题】:Process audio input from a mobile microphone without saving it to a file 【发布时间】:2016-06-01 16:07:48 【问题描述】:

我正在开发一个移动应用程序,该应用程序可以对来自麦克风的音频输入进行实时基本分析。但是,使用 guide 和 API 中所示的“AVAudioRecorder”的常用方法需要您先将其保存到文件中。

由于该应用程序旨在长时间保持打开状态并每天使用多次,因此我希望避免手机中出现许多音频文件或太大的音频文件。但是,我似乎无法找到解决方法。在互联网上搜索解决方案总是会找到如何将音频保存到文件的解决方案,而不是避免保存到文件并使用某种缓冲区。

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

谢谢!现在正在努力用 C# 实现 AudioQueue!【参考方案2】:

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

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

【讨论】:

嗯,这是真的,但如果我们一记录数据就扔掉……那为什么要先记录呢? 这取决于你想做什么。 IE。您可以使用它来获取麦克风的平均功率或峰值功率

以上是关于处理来自移动麦克风的音频输入而不将其保存到文件中的主要内容,如果未能解决你的问题,请参考以下文章

如何将 mp3 转换为带有 n 音频的波形而不将其保存到硬盘?

如何播放音频样本而不将其写入文件?

将音频的 ByteArray 保存到音频文件中

如何在python中生成文件而不将其保存到磁盘?

生成 MIDI 文件并播放它而不将其保存到磁盘

生成pdf而不将其保存到磁盘然后将其显示给浏览器