从ExtUnudioFileWrite的AudioUnit格式转换

时间:2013-07-10 21:12:14

标签: macos core-audio extaudiofile

我有一个完全由Apple AudioUnits制作的AUGraph - DLSSynth,Delay,Stereo Mixer。我试图将其输出捕获到ExtAudioFile中。我的问题是我认为我需要从AudioUnit格式转换为ExtAudioFile可以使用的文件格式。如果我从AUGraph那里拿ASBD,我会得到

mSampleRate Float64 44100
mFormatID   UInt32  1819304813
mFormatFlags    UInt32  41  
mBytesPerPacket UInt32  4   
mFramesPerPacket    UInt32  1   
mBytesPerFrame  UInt32  4   
mChannelsPerFrame   UInt32  2   
mBitsPerChannel UInt32  32  
mReserved   UInt32  0   

但是我不能创建一个带有ASBD的ExtAudioFile而没有获得fmt?错误。有人能指出将此流记录到文件的正确方向吗?

1 个答案:

答案 0 :(得分:2)

您希望将该ASBD用作ExtAudioFile的客户端格式(kExtAudioFileProperty_ClientDataFormat),在创建文件后通过属性设置。这是您在ExtAudioFileWrite中传递的数据格式。输出文件的格式在ExtAudioFileOpen

中指定