当一个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; }