有没有库函数来规范化一个声音文件?我找遍了,但什么也没找到。
我希望能够正常化一个声音文件,并将其设置为声音文件,这样它只需要做一次,而不是在飞行中。
这可以通过Core-Audio来实现吗?
发布于 2013-01-15 07:17:21
是的,这是可以做到的,但不是通过一个函数调用就可以完成的。
您想要的功能实际上不是CoreAudio,而是ExtendedAudioFile.h - AudioToolbox框架的一部分。这对于iOS和MacOSX都是可用的。我可以证明这是相当难找到的。
此标头中感兴趣的函数是ExtAudioFileOpenURL()、ExtAudioFileRead()和ExtAudioFileWrite()。
概述你要做的事情:
ExtAudioFileOpenURL()打开输入文件,并使用ExtAudioFileGetProperty() propertyId kExtAudioFileProperty_FileDataFormat获取描述该文件的AudioStreamBasicDescription。
似乎更容易接受这一点,分配一个足够大的缓冲区来容纳整个音频文件,并使用ExtAudioFileRead() -NB读取整个文件:这个调用可能不会一下子读取所有文件-操作方式与POSIX read()
ExtAudioFileRead()创建输出文件的操作非常相似,使用ExtAudioFileWrite()将标准化的样本写出来。文档链接到几个示例项目,这些项目可以充当工作代码的捐赠者。你会发现将样本作为浮点数进行标准化要容易得多,但在iOS中,我永远不能让转换自动工作,所以你可能必须自己进行格式转换。
https://stackoverflow.com/questions/14327091
复制相似问题