当一个UIViewController被推走时即使他在内存里保留。。也不能注册成功为第一相映者。。如果想要程序在后台时也接收到系统远端的控制(耳机&iphone最下面默认的播放暂停信号)。。那就需要在工程的基类里覆盖下面的三个函数。
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self becomeFirstResponder];
}
- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent {
if (receivedEvent.type == UIEventTypeRemoteControl) {
switch (receivedEvent.subtype) {
case UIEventSubtypeRemoteControlTogglePlayPause:
{
[[DMPlayerViewController sharedPubPlayerElement] msg_action_play: nil];
//NSLog(@"UIEventSubtypeRemoteControlTogglePlayPause");
}
break;
case UIEventSubtypeRemoteControlPreviousTrack:
{
[[DMPlayerViewController sharedPubPlayerElement] msg_action_prev: nil];
//NSLog(@"UIEventSubtypeRemoteControlPreviousTrack");
}
break;
case UIEventSubtypeRemoteControlNextTrack:
{
[[DMPlayerViewController sharedPubPlayerElement] msg_action_next: nil];
//NSLog(@"UIEventSubtypeRemoteControlNextTrack");
}
break;
default:
break;
}
}
}
-(BOOL)canBecomeFirstResponder{
return YES;
}