iPhone AVAudioPlayer stopping background music
Note: The AudioSession API has been completely deprecated in iOS 7.0
You can't run AVAudioPlayer and the iPod player or MPMusicPlayer or MPMoviePlayer at the same time, without doing a bit more work. If you want easy, then use Audio Toolbox's System Sounds.
If you want to do some extra work, then you should look at Audio Sessions:
kAudioSessionCategory_UserInterfaceSoundEffects
For sound effects such as touch feedback, explosions, and so on.Equivalent to the
kAudioSessionCategory_AmbientSound
category, which you should use instead. ThekAudioSessionCategory_UserInterfaceSoundEffects
category is deprecated in iPhone OS 3.0.
kAudioSessionCategory_AmbientSound
For long-duration sounds such as rain, car engine noise, and so on. It is also for “play along” style applications, such a virtual piano that a user plays over iPod audio.When you use this category, audio from built-in applications, such as the iPod, mixes with your audio. Your audio is silenced when the Ring/Silent switch is set to silent or when the screen locks.
Basically, every app is assigned an audio session which is modelled as a singleton class which you can get at application launch and set parameters to. The way I fixed the same problem was through a single line of code placed at applicationDidFinishLaunching
:
Objective-C:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];
Swift 2/3:
try! AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)