【问题标题】:RemoteControlReceivedWithEvent in iOS 7 issueiOS 7 中的 RemoteControlReceivedWithEvent 问题
【发布时间】:2013-10-01 20:13:03
【问题描述】:

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

谢谢

【问题讨论】:

    标签: iphone objective-c ios6 ios7


    【解决方案1】:

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

    *更新*

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

    【讨论】:

    • 完美!就像我想要的那样工作!谢谢
    • 玩得好,省了我的时间
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-10
      • 2015-11-03
      • 2013-11-17
      • 1970-01-01
      相关资源
      最近更新 更多