Iphone iOS 7问题中的RemoteControlReceivedWithEvent

Iphone iOS 7问题中的RemoteControlReceivedWithEvent,iphone,objective-c,ios6,ios7,Iphone,Objective C,Ios6,Ios7,我很难弄明白为什么iOS 7中的遥控器不能工作。在iOS 7中,在锁定屏幕中,甚至在控制中心中,按钮都没有响应,有趣的是,它在iOS 6上运行良好 以下是我使用的代码: - (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent { if (receivedEvent.type == UIEventTypeRemoteControl) { switch (receivedEvent.subtype) {

我很难弄明白为什么iOS 7中的遥控器不能工作。在iOS 7中,在锁定屏幕中,甚至在控制中心中,按钮都没有响应,有趣的是,它在iOS 6上运行良好

以下是我使用的代码:

- (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent {

if (receivedEvent.type == UIEventTypeRemoteControl) {

    switch (receivedEvent.subtype) {

        case UIEventSubtypeRemoteControlTogglePlayPause:
             if (player.playbackState == MPMusicPlaybackStatePlaying) {

                 [player pause];
             }
             else {
                 [player play];
             }
            break;
        case UIEventSubtypeRemoteControlPreviousTrack:
            break;

        case UIEventSubtypeRemoteControlNextTrack:
            break;

        default:
            break;
    }
}}
我在这里找到了有关如何执行此操作的信息:

知道为什么会这样吗?它适用于iOS 6,但不适用于iOS 7


谢谢

我遇到了同样的问题,我最终删除了case语句uieventsubmitRemoteControlTogglePlayPause,并分别添加了case语句uieventsubmitRemoteControlPlayuieventsubmitRemoteControlPause。我无法很好地解释为什么会发生这种变化

*更新*


我发现当用户使用耳机控制播放器时,会调用uieventRemoteControlTogglePlayPause。仅供参考。

我认为这是一个更好的解决方案:

case UIEventSubtypeRemoteControlTogglePlayPause:
case UIEventSubtypeRemoteControlPlay:
case UIEventSubtypeRemoteControlPause:
   if (_paused) {
      [self play:self];
   } else {
      [self pause:self];
   }
   break;

完美的就像我想的那样工作!谢谢,你帮我节省了时间