I have an requirement that to handle headphone play/pause button events in foreground. How ever I am able to handle the same scenario in background using the below code
if ([[UIApplication sharedApplication] respondsToSelector:@selector(beginReceivingRemoteControlEvents)]){
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL];
[self becomeFirstResponder];
NSLog(@"Responds!");
}
Please help with an explanation or sample code if possible. I have done lots of research but no help.
There is another way to implement player control from headphones.
use MPRemoteCommandCenter
tooglePlayPauseCommand.
Apple documentation
[[MPRemoteCommandCenter sharedCommandCenter].togglePlayPauseCommand addTarget:self action:@selector(onTooglePlayPause)];
You must check this criteria:
- Edit your info.plist to stipulate that you do audio (UIBackgroundModes) in the background as well as foreground.
Implement this function:
- (void)remoteControlReceivedWithEvent:(UIEvent *)theEvent { if (theEvent.type == UIEventTypeRemoteControl) { switch(theEvent.subtype) { case UIEventSubtypeRemoteControlTogglePlayPause: //Insert code break; case UIEventSubtypeRemoteControlPlay: //Insert code break; case UIEventSubtypeRemoteControlPause: // Insert code break; case UIEventSubtypeRemoteControlStop: //Insert code. break; default: return; } } }
...obviously, replace the "//insert code" with whatever functionality is relevent in your app.
3>Finally, in order for that above function to be called, insert this in your viewDidAppear event:
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
if ([self canBecomeFirstResponder]) {
[self becomeFirstResponder];
}
also please see this link: http://www.sagorin.org/2011/11/29/ios-playing-audio-in-background-audio/
The swift 2 version for slobodans solution:
MPRemoteCommandCenter.sharedCommandCenter().togglePlayPauseCommand.addTarget(self, action: #selector(togglePlayStop(_:)));
来源:https://stackoverflow.com/questions/15424578/how-can-we-handle-headphone-play-pause-button-events-in-foreground-in-ios