I'm writing an app that uses AVAudioPlayers to play sounds and I need the sounds to play at absolute MAX volume. Yes you can set the relative volume for an AVAudioPlayer, but if the user has the device volume turned down, the sound will still play quietly.
I know that Apple says that the device volume cannot be overridden, but yet the Alarm Clock apps out there somehow are able to do this - so there must be a way.
I believe that this can be done using Audio Queues using the call:
AudioQueueSetParameter(aq, kAudioQueueParam_Volume, 1.0);
But my code needs to use the AVAudioPlayer to play the sounds so I don't think this approach will be of any help.
There is also a way to use an undocumented function of MPVolumeView to accomplish this, but apparently someone already had an app rejected for using this method.
Any other ideas?