我正在为Swift语言的iOS开发下载管理器和音乐播放器应用。这个应用程序有2个ViewController,一个是音乐播放器,我使用AVPlayer实例播放音乐,它显示了音乐列表,然后点击选定的音乐将播放音乐。
第二个ViewController是一个Web浏览器,用户可以浏览网站并像普通Web浏览器一样做任何想做的事情。
我的问题是我在播放器VC中为背景事件(播放,暂停,下一个,上一个)设置了远程控制事件,并且一切正常,直到我进入浏览器VC并打开诸如{{3 }}具有音乐/视频内容,它将完全禁用我当前的远程后台事件。
以下是打开所述网站之前和之后的图像:
1- music selected to play and all remote control events are available
let command = MPRemoteCommandCenter.shared();
command.playCommand.addTarget { (event) -> MPRemoteCommandHandlerStatus in
self.player.play()
return .success
}
command.nextTrackCommand.addTarget { (event) -> MPRemoteCommandHandlerStatus in
self.PlayNext()
return .success
}
这是我的PlayerViewController中的示例代码,在我打开提到的网站之前,它的工作正常:
override func viewDidAppear(_ animated: Bool)
{
UIApplication.shared.beginReceivingRemoteControlEvents();
self.becomeFirstResponder();
}
override func becomeFirstResponder() -> Bool
{
return true;
}
override func remoteControlReceived(with event: UIEvent?) {
guard event!.type == .remoteControl else {
return
}
switch event!.subtype
{
case .remoteControlNextTrack:
mediaPlayer.PlayNext()
case .remoteControlPause:
mediaPlayer.player.pause()
case .remoteControlPlay:
mediaPlayer.player.play()
case .remoteControlPreviousTrack:
mediaPlayer.PlayPrev()
case .remoteControlStop:
mediaPlayer.player.pause()
case .remoteControlTogglePlayPause: break
default:
break
}
}