8
votes

I am looking for a way to resume audio played by another application after my application plays its own sound with AVAudioPlayer. Right now, if I am listening to music and launch my application, it pauses the music, plays my sound, but doesn't resume the background music.

Here is what i'm doing to generate the sound playback:

myChime = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"chime" ofType:@"mp3"]] error:nil];
myChime.delegate = self;
[myChime play];
// Here I am looking to resume the audio that the system was playing before my application played its sound.  I have seen many applications do this such as, GPS apps that speak a voice direction and then resume the music.
1
Well many applications such as MotionX-GPS will allow iPod to play background music until the voiceover occurs then it halts the music, plays the "turn left" sound, and resumes the ipod playback. I want to know how to resume the previous system audio playback once my sound has completed playing.wasabi
I am also facing this issue. Could you please suggest any sample code here? Thanks in advance.Gopinath
Could you please help me to solve this? I spent two days on this? Waiting for your reply. Please see my question for your reference : stackoverflow.com/questions/12475034/…Gopinath
Really i am trying to do what you have done. Could you please respond my request? Please help me. Thanks.Gopinath

1 Answers

7
votes

You need to properly implement the AVAudioSession delegate methods. If you set the audio session to inactive, then the system will know you are done playing your sound and will resume any other audio sessions. Refer to the Audio Session Programming Guide, especially the setActive:error: method.