Re: AVAudioEngine input and output devices
Re: AVAudioEngine input and output devices
- Subject: Re: AVAudioEngine input and output devices
- From: Arshia Cont via Coreaudio-api <email@hidden>
- Date: Sat, 28 Sep 2019 23:02:04 +0200
Thank you Dominic for sharing this.
Is this general to both OSX and iOS or an OSX issue only? on iOS we can manage
to route audio using AVAudioSession. I’m not an OSX guy that’s why I’m asking
and before I move everything to AVAudioEngine!
> On 28 Sep 2019, at 22:53, Dominic Feira via Coreaudio-api
> <email@hidden> wrote:
>
> 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
>> <mailto: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
>>> <mailto: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
_______________________________________________
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