Want to have this option of App plays audio in background mode even when app is closed by pressing the home button.
With the below code only able to handle remote control events when home button is pressed twice. But not able to play app audio in background when app is closed. So how can i play app's audio of type mp3 in background mode which is audible content in my app when home button is pressed to close the app.
In the Info.plist file i have added option
Required background modes App plays audio
- (void) setupAudioSession {
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
// Specify that this object is the delegate of the audio session, so that this object's endInterruption method will be invoked when needed.
[audioSession setDelegate: self];
// Assign the Playback category to the audio session.
NSError *audioSessionError = nil;
//[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioSession setCategory: AVAudioSessionCategoryPlayback error: &audioSessionError];
if (audioSessionError != nil) {
NSLog (@"Error setting audio session category.");
return;
}
// Activate the audio session
[audioSession setActive: YES error: &audioSessionError];
if (audioSessionError != nil) {
NSLog (@"Error activating audio session during initial setup.");
return;
}
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self resignFirstResponder];
}
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
//if it is a remote control event handle it correctly
if (event.type == UIEventTypeRemoteControl) {
if (event.subtype == UIEventSubtypeRemoteControlTogglePlayPause) {
//[player play];
[self playAction];
// } else if (event.subtype == UIEventSubtypeRemoteControlPause) {
// [player pause];
} else if (event.subtype == UIEventSubtypeRemoteControlPreviousTrack) {
[self rewButtonPressed];
} else if (event.subtype == UIEventSubtypeRemoteControlNextTrack)
[self ffwButtonPressed:nil];
}}
What i am missing in the code that app's audio is not playing in the background when home button is pressed.
Appreciate any help.
Thanks