0

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

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

我做了一些繁重的搜索,似乎无法弄清楚这一点。感谢您的帮助,谢谢!

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

4

1 回答 1

1

你想听-(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];

}

最后让所有 UIViewController 成为 BaseViewController 的子类。

于 2014-04-28T08:26:58.650 回答