我需要从音频文件获得比特率的信息,与kAudioFilePropertyBitRate总是不断给我返回0某些原因AudioFileGetProperty功能。与kAudioFilePropertyInfoDictionary相同,所产生的字典里面没有包括比特率的信息。我会尝试在manualy MP3的情况下,从原始数据得到这个,但我需要支持不同的文件格式,如M4A等。是否有任何其他方式做到这一点?

有帮助吗?

解决方案

如果你正在处理的文件时,你总是可以尝试使用聚光灯元数据API。举例来说,假设你的路径,你的音频文件作为一个NSString或CFStringRef称为“路径”:

MDItemRef item = MDItemCreate( kCFAllocatorDefault, path );
CFNumberRef audioBitrate = MDItemCopyAttribute( item, kMDItemAudioBitrate );
CFNumberRef totalBitrate = MDItemCopyAttribute( item, kMDItemTotalBitrate );
CFRelease( item );

这是不理想,但可能至少为你提供一些更多的背景信息,建议为什么其他API无法正常工作。

我能想到的唯一的其他东西:kAudioFilePropertyBitRate仅在OS X 10.5定义。如果你在运行10.4或更早的版本,您的代码仍然可以运行,但的AudioFile框架不会知道,bitrate属性可言,因此可能会返回零。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top