我连接了几个USB音频输入设备,我想选择其中一个以上连接到调音台。我理解它的方式,它将无法使用AVAudioInputNode
来达到此目的。
我可以通过使用AVFoundation从每个设备读取样本然后将它们安排到播放器来完成此操作,但在我看来,使用AVAudioUnit可能更容易完成。不幸的是,我无法做到这一点。
AudioComponentDescription desc;
desc.componentType = kAudioUnitType_Output;
desc.componentSubType = kAudioUnitSubType_HALOutput;
desc.componentFlags = 0;
desc.componentFlagsMask = 0;
desc.componentManufacturer = kAudioUnitManufacturer_Apple;
[AVAudioUnit
instantiateWithComponentDescription:desc
options:kAudioComponentInstantiation_LoadInProcess
completionHandler:^(AVAudioUnit *xx, NSError *error) {
AudioUnitSetProperty(xx.audioUnit, kAudioOutputUnitProperty_CurrentDevice,
kAudioUnitScope_Global, 0, &inputDeviceID, sizeof(inputDeviceID));
[_engine attachNode:xx];
AVAudioMixerNode *mixer = [_engine mainMixerNode];
[_engine connect:xx to:mixer format:[xx outputFormatForBus:0]];
}];
[central] 54:ERROR:> avae> AVAudioEngineGraph.mm:1235:AddNode: 所需条件为false:inImpl!= nil&& !IsIONode(inAVNode)
任何建议都将不胜感激。