我一直在寻找网络的答案几周没有运气。osx音频单元多通道输出
我有一个maudio profire 610多通道音频接口。 如何正确设置AudioStreamBasicDescription以使用全部8个输出通道? 目前它只适用于前2个频道。
UInt32 busCount = 3; //numberOfOutputBusses;
AudioStreamBasicDescription outputASBD2 = {
.mSampleRate = 44100,
.mFormatID = kAudioFormatLinearPCM,
.mFormatFlags = kAudioFormatFlagsAudioUnitCanonical,
.mChannelsPerFrame = busCount,
.mFramesPerPacket = 1,
.mBitsPerChannel = sizeof(Float32) * 8,
.mBytesPerPacket = sizeof(Float32) * busCount,
.mBytesPerFrame = sizeof(Float32) * busCount
};
AudioUnitSetProperty(*_unit,
kAudioUnitProperty_StreamFormat,
kAudioUnitScope_Output,
1,
&outputASBD2,
sizeof(AudioStreamBasicDescription);
我工作的ofxaudiounit插件对了openFrameworks: https://github.com/antimodular/ofxAudioUnit
感谢。
感谢。我会试试这个。 与此同时,如果我使用这些其他格式标志中的任何一个,这种行为必须改变吗? kAudioFormatFlagIsSignedInteger kAudioFormatFlagsNativeEndian kAudioFormatFlagIsNonMixable 我真的不知道自己代表的是什么。 再次感谢。 – stephanschulz 2013-03-02 13:07:09
kAudioFormatFlagsAudioUnitCanonical包含NativeEndian。是的,如果您使用SignedInteger,则会发生变化,因为SignedInteger似乎将所有内容都放入一个缓冲区中。我不知道IsNonMixable是什么:) – iain 2013-03-02 13:15:13