我有一个iOS应用程序,该应用程序使用RadioKit SDK流音乐。在选项卡栏控制器的不同视图之间切换时,音频可以正常播放,但是当插入耳机并且用户正在查看其中一个辅助选项卡视图时(总共5个,应用程序启动时有1个主要选项,其他4个) ),如果他们尝试按“播放/暂停”按钮,则该应用无法识别该操作。如果正在播放,则不会暂停;如果已暂停,则不会播放。但是,该应用程序确实可以从耳机识别音量变化。

无论应用程序在视图中还是在后台,或者设备已锁定,此行为都是一致的。

我已经进行了一些繁重的搜索,但似乎无法弄清楚。感谢您的帮助,谢谢!

iOS版本6.1.3
iOS SDK版本6.1
xCode版本4.6.3

最佳答案

您想听-(void)remoteControlReceivedWithEvent:(UIEvent *)event

创建一个基本的UIViewController,我们称它为BaseViewController并添加以下内容:

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

    if (event.type == UIEventTypeRemoteControl) {

        switch(event.subtype) {
            case UIEventSubtypeRemoteControlTogglePlayPause:

                break;
            case UIEventSubtypeRemoteControlPlay:

                break;
            case UIEventSubtypeRemoteControlPause:

                break;
            case UIEventSubtypeRemoteControlStop:

                break;
            default:
                break;

        }
    }
    else{
        [super remoteControlReceivedWithEvent:event];
    }
}


另外,您还希望在基类中包含以下内容,以便实际上可以接收任何远程控制事件。

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];

    UIApplication *application = [UIApplication sharedApplication];
    if ([application respondsToSelector:@selector(beginReceivingRemoteControlEvents)]) {
        [application beginReceivingRemoteControlEvents];
    }

    [self becomeFirstResponder];

}


最后,所有UIViewControllers都是BaseViewController的子类。

09-04 09:55
查看更多