录制音频,添加效果,然后将结果保存到音频文件

Posted

技术标签:

【中文标题】录制音频,添加效果,然后将结果保存到音频文件【英文标题】:Record audio, add effects, then save result to a audio file 【发布时间】:2011-05-26 18:42:57 【问题描述】:

我无法按照标题所说的进行操作。我的目标是能够为您的录音添加任何所需的效果,保存修改后的音频,然后将其发送到服务器。

我搜索了fourms并遇到了这些线程: viewtopic.php?f=7&t=13029&p=45362&hilit=saving#p45362 viewtopic.php?f=7&t=12660&p=44586&hilit=saving#p44586 viewtopic.php?f=7&t=13178&p=45746&hilit=saving#p45746

读完之后,我发现可以保存修改后的音频,但只能保存为 wav 吗?就像我说的那样,保存后它会被发送到服务器,所以大小很重要,与其他格式相比,wavs 相对较大。忽略这个事实,我试图实现 FMOD_OUTPUTTYPE_WAVWRITER 但我无法让它工作;有没有使用它的好例子?我查看了库中的示例,但我没有看到任何..

但该应用程序的基本结构是记录,关闭和打开一些开关以查看您想要的过滤器,预览它,然后按“保存”按钮将其保存。这个保存功能包括什么?

任何帮助表示赞赏,谢谢。

【问题讨论】:

【参考方案1】:

使用 FMOD_OUTPUTTYPE_WAVWRITER 非常简单,您可以通过 System::setOutput 设置类型,通过 System::init extradriverdata 指定输出文件。 extradriverdata 应该是设备可写区域(例如文档目录)的绝对路径。播放完毕后,调用 System::release 文件就完成了。

录制带有效果的波形数据的另一个选项是创建自定义 DSP 并将其连接到播放录制数据的通道。然后,您将获得定期回调,为您提供必须自己写到磁盘的浮动数据。您可以分别在 dsp_custom 和 recordtodisk 示例中找到 DSP 和编写 wav 文件的示例。

最后请注意,FMOD 不具备将压缩音频写入磁盘的功能,您将需要另一个 API 来实现此目标。

【讨论】:

感谢您的帮助!我会按照你的建议去做,明天试着让它工作。我想我只是无法看到使用 FMOD 背后的结构。 将 .wav 文件放入 NSData 以存储在对象中的最佳方法是什么?我想传递声音,我正在尝试找出最好的方法。 您可以使用 FMOD 打开 .wav 并使用 Sound::lock / Sound::unlock 或 Sound::readData 访问原始 PCM。但是,如果这是 wavwriter 输出的 .wav 文件,最好不要使用该解决方案,而是使用 DSP 选项。【参考方案2】:

您可以通过 ExtAudioFile API 将其另存为 AAC 文件。

【讨论】:

以上是关于录制音频,添加效果,然后将结果保存到音频文件的主要内容,如果未能解决你的问题,请参考以下文章

如何保存录制的音频iOS?

添加效果后导出音频文件

如何将音频文件复制到另一个文件

将录制的音频从浏览器保存到 Python API 作为 WAV 文件

基于点击事件android录制和保存音频

如何将 blob URL 转换为音频文件并将其保存到服务器