Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iphone app allow background music to continue to play

Tags:

When I launch my iPhone game as soon as a sound plays the background music or podcast that is playing stops. I noticed other games allow background audio to continue to play.

How is this possible? Do I need to override a method in my App Delegate?

like image 282
joe Avatar asked Jan 02 '13 12:01

joe


People also ask

How do I keep music playing in the background on my iPhone?

Go to Settings > Accessibility > Audio/Visual > Background Sounds, then turn on Background Sounds. Set any of the following: Sound: Choose a sound; the audio file downloads to your iPhone.


1 Answers

Place this line in your application:didFinishLaunchingWithOptions: method of your AppDelegate or in general before using the audio player.

 [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil]; 

According to the documentation, the AVAudioSessionCategoryAmbient category is

for an app in which sound playback is nonprimary—that is, your app can be used successfully with the sound turned off.

This category is also appropriate for “play along” style apps, such as a virtual piano that a user plays over iPod audio. When you use this category, audio from other apps mixes with your audio. Your audio is silenced by screen locking and by the Silent switch (called the Ring/Silent switch on iPhone).

If you want also to ensure that no error occurred you have to check the return value

NSError *error; BOOL success = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&error]; if (!success) {      //Handle error      NSLog(@"%@", [error localizedDescription]); } else {    // Yay! It worked!       } 

As a final remark, don't forget to link the AVFoundation framework to your project and import it.

#import <AVFoundation/AVFoundation.h> 
like image 176
Gabriele Petronella Avatar answered Dec 17 '22 14:12

Gabriele Petronella