UIWebView禁用我当前正在播放的AVPlayer远程控制事件

时间:2019-04-30 21:07:16

标签: swift uiwebview avplayer

我正在为Swift语言的iOS开发下载管理器和音乐播放器应用。这个应用程序有2个ViewController,一个是音乐播放器,我使用AVPlayer实例播放音乐,它显示了音乐列表,然后点击选定的音乐将播放音乐。

第二个ViewController是一个Web浏览器,用户可以浏览网站并像普通Web浏览器一样做任何想做的事情。

我的问题是我在播放器VC中为背景事件(播放,暂停,下一个,上一个)设置了远程控制事件,并且一切正常,直到我进入浏览器VC并打开诸如{{3 }}具有音乐/视频内容,它将完全禁用我当前的远程后台事件。

以下是打开所述网站之前和之后的图像:

https://www.bia2.com

1- music selected to play and all remote control events are available

  • 我试图将代码放置在AppDelegate或其他VC中还是一样
  • 试图使用MPRemoteCommandCenter还是一样
 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
       }

   }

0 个答案:

没有答案