我正在使用Core-Audio/AudioToolbox(扩展音频文件服务)在OSX上读取音频文件。
对于我的特定应用程序,我需要找出我使用 ExtAudioFileOpenURL()
成功打开的文件是否是 CAF 文件。
不幸的是,我似乎错过了如何正确执行此操作,因为我无法从ExtAudioFileRef
中检索AudioFileTypeID
。
(在编写这样的文件时,我可以通过将AudioFileTypeID
传递给ExtAudioFileCreateWithURL
来定义类型;反之亦然呢?
就像我的另一个问题一样,事实证明我必须使用普通的AudioAPI(而不是ExtAudio API)
static bool isCAF(const AudioFileID*file) {
/* trying to read format (is it caf?) */
UInt32 format=0;
UInt32 formatSize=sizeof(format);
AudioFileGetProperty (*file, kAudioFilePropertyFileFormat, &formatSize, &format);
return (kAudioFileCAFType==format);
}