I have an app with various views. The main menu does not have any sounds, but the next views play sounds using the AVAudioPlayer Class.
So when someone launches the app and is in the main menu, if he changes the volume on his device, he actually changes the "Ringer" volume. If he proceeds to the other views (where we have sound), when he changes the volume on the device he changes the volume of the game, not the ringer.
Is there a way to have them change the app volume every time, from the beginning of my app, before I create any instances of AVAudioPlayer?? (some misunderstood that. What I mean is that square that the OS overlays on the screen every time you press the volume buttons. If you are on the home screen, you change the "Ringer". When you are in a game, you change the app's volume).
PS: I initialize the AudioSession on my main menu but that doesn't make any difference. The only hack i have found is to actually create an instance of AVAudioPlayer on my main menu and set it to "preparedToPlay". But I would rather hear what the others are doing (a proper solution).