我在我的应用程序中使用不同类型的播放器。我对所有的播放器都有某种控制,但其中有一个播放器我完全没有控制。
具体来说,当我从UIWebView中播放一个嵌入式视频时。
我的问题是,应用程序要求在后台播放音频,这工作正常。注意,视频的音频不需要在后台播放。但这意味着我需要使用远程控制(命令中心&锁屏命令)。
我的问题是以下几点。
当我播放了一个嵌入的视频后,遥控器仍然可以控制该视频,即使它已经被删除了。当我按 "播放 "键时,它同时播放我的收音机和嵌入的视频。
我如何才能 "清除记忆 "的命令中心?
我有足够的信息来知道何时应用解决方案,我不知道解决方案是什么,虽然。
解决方案可以包括在播放嵌入的视频时完全不能使用指挥中心,或者直到我的收音机被播放。解决方案可以包括对指挥中心进行某种 "硬复位"。
其实,任何解决方案都是欢迎的。
这个问题有点老了,但我刚刚解决了这个问题,感觉这可以帮助别人。阻止我重置命令中心的原因是我添加了目标动作,这些动作在我的视图控制器的生命周期中持久存在。
下面是我的代码是这样的。
在视图控制器上。
var commandPlay: Any?
var commandPause: Any?
当添加目标时,
commandPlay = commandCenter.playCommand.addTarget {event in
self.startButtonTapped(self.startButton)
MPNowPlayingInfoCenter.default().nowPlayingInfo?[MPNowPlayingInfoPropertyPlaybackRate] = 1.0
return .success
}
commandPause = commandCenter.pauseCommand.addTarget {event in
self.startButtonTapped(self.startButton)
MPNowPlayingInfoCenter.default().nowPlayingInfo?[MPNowPlayingInfoPropertyPlaybackRate] = 0.0
return .success
}
在解雇时删除目标(重要部分):
commandCenter.playCommand.removeTarget(commandPlay)
commandCenter.pauseCommand.removeTarget(commandPause)