是否有标准化声音文件的库函数?我四处寻找,但找不到任何东西。
我希望能够规范化声音文件并将其设置到声音文件中,因此只需要完成一次而不是即时完成。
这可以用 Core-Audio 完成吗?
是否有标准化声音文件的库函数?我四处寻找,但找不到任何东西。
我希望能够规范化声音文件并将其设置到声音文件中,因此只需要完成一次而不是即时完成。
这可以用 Core-Audio 完成吗?
是的,它可以完成,但不能通过单个函数调用。
您想要的功能实际上不是 CoreAudio,而是框架ExtendedAudioFile.h
的一部分。AudioToolbox
这适用于 iOS 和 MacOSX。我可以证明这很难找到。
ExtAudioFileOpenURL()
此标头中感兴趣的函数是ExtAudioFileRead()
和ExtAudioFileWrite()
。
概述您的工作:
ExtAudioFileOpenURL()
打开输入文件ExtAudioFileGetProperty()
与 propertyId一起使用kExtAudioFileProperty_FileDataFormat
以获取描述文件 的AudioStreamBasicDescription 。
可能设置 ASBD 以获得您想要的格式。MacOSX 上的 AudioToolBox 似乎比 iOS 上更适合这一点。
计算一个足够大的缓冲区来容纳整个音频文件
读取整个文件ExtAudioFileRead()
- 注意:此调用可能不会一口气全部读取 - 操作与 POSIX 大致相同read()
执行标准化
ExtAudioFileCreateWithURL()
创建输出文件ExtAudioFileWrite()
写出标准化样本。该文档链接到几个示例项目,这些项目可以充当工作代码的捐助者。您会发现将样本作为浮点数进行标准化要容易得多,但在 iOS 中,我永远无法让转换自动工作,因此您可能必须自己进行格式转换。