4

我很难弄清楚为什么在 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;
    }
}}

这是我找到有关如何执行此操作的信息的地方:

https://developer.apple.com/library/ios/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/Remote-ControlEvents/Remote-ControlEvents.html

任何想法为什么会发生这种情况?它适用于 iOS 6,但不适用于 iOS 7。

谢谢

4

2 回答 2

9

我遇到了同样的问题,我最终删除了案例语句UIEventSubtypeRemoteControlTogglePlayPause并分别添加了案例语句UIEventSubtypeRemoteControlPlayUIEventSubtypeRemoteControlPause。我没有很好的解释为什么会发生这种变化。

*更新*

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

于 2013-10-02T20:36:38.267 回答
0

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

case UIEventSubtypeRemoteControlTogglePlayPause:
case UIEventSubtypeRemoteControlPlay:
case UIEventSubtypeRemoteControlPause:
   if (_paused) {
      [self play:self];
   } else {
      [self pause:self];
   }
   break;
于 2014-06-03T10:08:25.393 回答