iOS遠程控制問題,系統遠端事件remoteControlReceivedWithEvent捕獲不到的問題

我想在我的app裏開發後臺播放的功能,所以我在播放器的viewController裏寫了系統遠端事件:

-(BOOL)canBecomeFirstResponder{
    return YES;
}
#pragma mark - 接收到遠程控制時執行的方法
- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent{
    PlayerViewController *play = [PlayerViewController sharedManager];
    if (receivedEvent.type == UIEventTypeRemoteControl) {
        switch (receivedEvent.subtype) { // 得到事件類型
            case UIEventSubtypeRemoteControlTogglePlayPause: // 暫停 ios6
                [play _actionPlayPause:nil];
                [self updateState];// 調用你所在項目的暫停按鈕的響應方法 下面的也是如此
                break;
            case UIEventSubtypeRemoteControlPreviousTrack:  // 上一首
                [play _actionLast:nil];
                break;
            case UIEventSubtypeRemoteControlNextTrack: // 下一首
                [play _actionNext:nil];
                break;
            case UIEventSubtypeRemoteControlPlay: //播放
                [play _actionPlayPause:nil];
                [play setNowPlayingInfo];
                [self updateState];
                break;
            case UIEventSubtypeRemoteControlPause: // 暫停 ios7
                [play _actionPlayPause:nil];
                [self updateState];
                break;
            default:
                break;
        }
    }
}

這時候當我切換界面或者退出後臺的時候遠程控制就失效了,發現remoteControlReceivedWithEvent不在調用,此時懷疑係統捕獲不到遠端事件
解決方法:
將接收遠程控制的方法,也就是上述代碼寫在跟控制器裏,我的根控制器是UITabbarViewController

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章