In iOS 9, AVAudioPlayer will play at a reduced volume after the initialisation of VoiceProcessingIO Audio Unit

In iOS 9, AVAudioPlayer will play at a reduced volume after the initialisation of VoiceProcessingIO Audio Unit, while the category is set to PlayAndRecord.


There is a similar situation that PJSIP encountered in pre-iOS 9:
https://trac.pjsip.org/repos/ticket/1697

Answers

Please file a bug at bugreporter.apple.com

Instantiation of the kAudioUnitSubType_VoiceProcessingIO unit attenuates audio playback on the output scope of bus 0. It's been like this for a very long time. I have correspondence with the audio team discussing this behavior dating back to iOS 6. File a bug sure, but you should realize what's going on and design your app accordingly.

There is something new that is different from what PJSIP encountered in iOS 7.


My App will initialize VoiceProcessingIO AudioUnit firstly and then use AVAudioPlayer to play a ringtone before a voice chat. In iOS 7 and iOS 8, except the problem that PJSIP encountered, my App works fine and the volume of the ringtone is normal. But the volume of the ringtone is much lower in iOS 9.

What's the bug number? I can ask the VPIO folks about it and see what they say for this iOS version.

The bug number is 23059164. Thanks for your help.

Hi,


Could you please give some information about the results of investigating this bug 23059164?


I understand that VoiceProcessingIO AudioUnit can lower output volume but where switching to RemoteIO AudioUnit everything should be reset.

But in my case the volume is lower and I have always mono sound on RemoteIO configure in stereo.

I do call AudioOutputUnitStop(), AudioUnitUninitialize() and AudioComponentInstanceDispose() before initializing and starting new instance of Audio Unit - AudioComponentFindNext(), AudioComponentInstanceNew(), AudioUnitInitialize() and AudioOutputUnitStart().

Sorry, Apple's VPIO folks said it was normal. This problem still remains unresolved. 😟