Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AVAudioPlayer with MPMusicPlayerController

I have music playing within my application using a MPMusicPlayerController, using iPodMusicPlayer (also tried applicationMusicPlayer). When I play a sound using AVAudioPlayer my music from my MPMusicPlayerController will stop. Is there a way to have the MPMusicPlayerController and the AVAudioPlayer play sounds simultaneously?

like image 596
avizzini Avatar asked Jul 11 '10 19:07

avizzini


2 Answers

Hey, found the solution on the web.

Write these 2 lines somewhere, I did it in application:didFinishLaunchingWithOptions

// Set sounds not to stop music
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];

Must admit I didn't delve into the details, but it works...

Good luck!

Oded.

like image 78
Oded Ben Dov Avatar answered Sep 21 '22 23:09

Oded Ben Dov


Oded Ben Dov's solution does the job, but you might not want to change your session category. For example, if you want your audio to keep playing while the screen is locked, you need the Playback category.

In that case, you can apply this category override instead:

UInt32 mixWithOthers = YES;
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(mixWithOthers), &mixWithOthers);
like image 25
arlomedia Avatar answered Sep 20 '22 23:09

arlomedia