Re: AVAudioEngine input and output devices
Re: AVAudioEngine input and output devices
- Subject: Re: AVAudioEngine input and output devices
- From: Dominic Feira via Coreaudio-api <email@hidden>
- Date: Sat, 28 Sep 2019 16:53:01 -0400
Yes, this works if you are only using audio output. I am using the input and
output at the same time. If you do this, then you are restricted to using the
default input and output devices.
— Dominic
> On Sep 28, 2019, at 1:06 AM, Tamas Nagy <email@hidden> wrote:
>
> Hi Dominic,
>
> you can change the output to an AudioDeviceID on the AudioUnit of the
> outputNode.
>
> OSStatus err = AudioUnitSetProperty([[audioEngine outputNode] audioUnit],
>
> kAudioOutputUnitProperty_CurrentDevice,
> kAudioUnitScope_Global,
> 0,
> &deviceId,
> sizeof(AudioDeviceID));
>
> This works for us for years now.
>
> Hope this helps.
>
> Best,
> Tamas
>
>> On 2019. Sep 28., at 2:56, Dominic Feira via Coreaudio-api
>> <email@hidden <mailto:email@hidden>> wrote:
>>
>> For the record, DTS has confirmed that everything I have posted below is
>> correct. AVAudioEngine can only be used with the default input and output
>> devices. The fact that AVAudioEngine ever shipped for the Mac like this at
>> all says a lot.
>>
>> — Dominic
>>
>>> I have been working with AVAudioEngine.
>>>
>>> By default the AVAudioEngine is using an aggregate audio device with the
>>> default input/output as the subdevices. This makes sense so the entire
>>> engine can run on a single clock.
>>>
>>> Is it possible to set the input and output devices to use something other
>>> than the system?s default input and output?
>>>
>>> From experimentation, if I set the input or output to anything other than
>>> an aggregate device it fails. If I change the input and output to use the
>>> same aggregate device (that I created with non-default devices), it works.
>>> However any time the default output or input of the system changes, the
>>> engine?s input/output are set back to the aggregate device set up by core
>>> audio that uses the default input/output, basically overriding what I told
>>> the engine to do.
>>>
>>> I hope that I?m missing something obvious, but I think I have run into the
>>> limits of this API. For an API that has been on the Mac for several years
>>> it is very limited.
>>
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Coreaudio-api mailing list (email@hidden
>> <mailto:email@hidden>)
>> Help/Unsubscribe/Update your Subscription:
>>
>>
>> This email sent to email@hidden
>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden