如何找出音频文件的FileType?

时间:2012-06-18 12:46:51

标签: macos core-audio audiotoolbox caf

我正在使用Core-Audio / AudioToolbox(扩展音频文件服务)在OSX上读取音频文件。

对于我的特定应用程序,我需要查明我使用ExtAudioFileOpenURL()成功打开的文件是否是CAF文件。

很遗憾,我似乎错过了如何正确执行此操作,因为我无法从AudioFileTypeID检索ExtAudioFileRef

(在编写这样的文件时,我可以通过将AudioFileTypeID传递给ExtAudioFileCreateWithURL来定义类型;反之亦然?

1 个答案:

答案 0 :(得分:1)

与我的other question一样,事实证明我必须使用普通的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);
}