使用AVAudioEngine的多个音频输入设备

时间:2017-01-15 16:45:21

标签: audiounit avaudioengine

我连接了几个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)

任何建议都将不胜感激。

0 个答案:

没有答案