我在macOS上使用AudioToolbox编写音频转换器,需要一种交叉引用C中这些整数枚举的方法。我的代码:
let url = URL(fileURLWithPath: "/path/to/file.wav") as CFURL
var audioFile: ExtAudioFileRef? = nil
ExtAudioFileOpenURL(url, &audioFile)
var format = AudioStreamBasicDescription()
var propertySize = UInt32(MemoryLayout.stride(ofValue: format))
ExtAudioFileGetProperty(audioFile!, kExtAudioFileProperty_FileDataFormat, &propertySize, &format)
print(format.mFormatID) // prints 1819304813
我浏览了头文件并逐个打印出密钥:
(lldb) p kAudioFormatLinearPCM
(AudioFormatID) $R2 = 1819304813
所以我知道它的线性PCM。有没有更快的方法呢?