我有一个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的子类。