首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标准化音频文件obj-c

标准化音频文件obj-c
EN

Stack Overflow用户
提问于 2013-01-15 05:32:51
回答 1查看 1.5K关注 0票数 3

有没有库函数来规范化一个声音文件?我找遍了,但什么也没找到。

我希望能够正常化一个声音文件,并将其设置为声音文件,这样它只需要做一次,而不是在飞行中。

这可以通过Core-Audio来实现吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-15 07:17:21

是的,这是可以做到的,但不是通过一个函数调用就可以完成的。

您想要的功能实际上不是CoreAudio,而是ExtendedAudioFile.h - AudioToolbox框架的一部分。这对于iOS和MacOSX都是可用的。我可以证明这是相当难找到的。

此标头中感兴趣的函数是ExtAudioFileOpenURL()ExtAudioFileRead()ExtAudioFileWrite()

概述你要做的事情:

  1. 使用ExtAudioFileOpenURL()打开输入文件,并使用ExtAudioFileGetProperty()

propertyId kExtAudioFileProperty_FileDataFormat获取描述该文件的AudioStreamBasicDescription

  1. 可能会设置ASBD来获取您想要的格式。与iOS.
  2. Calculate上的AudioToolBox相比,MacOSX上的

似乎更容易接受这一点,分配一个足够大的缓冲区来容纳整个音频文件,并使用ExtAudioFileRead() -NB读取整个文件:这个调用可能不会一下子读取所有文件-操作方式与POSIX read()

  1. Perform normalisation
  2. Use ExtAudioFileRead()创建输出文件的操作非常相似,使用ExtAudioFileWrite()将标准化的样本写出来。
  3. 处理这两个音频文件。

文档链接到几个示例项目,这些项目可以充当工作代码的捐赠者。你会发现将样本作为浮点数进行标准化要容易得多,但在iOS中,我永远不能让转换自动工作,所以你可能必须自己进行格式转换。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14327091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档