自从我更新到ios 12.2锁屏控件后,它就停止为我工作了,我不知道为什么。在ios 12.1中工作正常
capabilities->Background mores -> Audio
UIApplication.shared.beginReceivingRemoteControlEvents()
然后我设置
MPRemoteCommandCenter.shared().playCommand.isEnabled = true
MPRemoteCommandCenter.shared().pauseCommand.isEnabled = true
MPRemoteCommandCenter.shared().playCommand.addTarget(self, action:#selector(self.playPlayer))
MPRemoteCommandCenter.shared().pauseCommand.addTarget(self, action: #selector(self.pausePlayer))
然后AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback) and AVAudioSession.sharedInstance().setActive(true)
我使用AVPlayer
和AVPlayer
项目。 Locksceen控件永远不会在ios 12.2上显示。任何想法都可能导致此问题吗?谢谢
(我使用xcode 10.2和swift 4.2)
编辑:我能够弄清楚这仅在设备在线时才会发生。如果我立即播放,则会出现锁屏控件,然后在几秒钟内消失。如果稍后播放,它们将不会出现。因此看来,它们在应用启动后几秒钟就起作用了,然后就没有了
编辑2:现在已修复。问题是由应用程序将本地html文件加载到webview中引起的。完全与播放无关,仅此而已。解决方案是不加载webview
答案 0 :(得分:3)
问题是由应用程序将本地html文件加载到UIWebView中引起的。完全与播放无关,仅此而已。解决方案不是加载UIWebView,而是使用WKWebView。
讨论了类似的问题here,但我发现它只是因为我已经知道是什么原因了。
答案 1 :(得分:1)
我同意vandzi的回答。 我们对其进行了进一步调查,发现在我们的案例中是在Google移动广告框架中使用UIWebView来展示广告。只要Ads HTML内容与某些音频组件相关联,音频会话就会失去焦点。 附言如上所述,这仅在iOS 12.2及更高版本上发生。 (我们在相同的测试环境中针对不同的iOS版本对此进行了验证。)
更新:现在,在将应用程序部署到应用程序商店时,Apple已开始发送警告消息,建议不要使用UIWebView。
消息:“ ITMS-90809:不推荐使用的API-Apple将停止接受使用UIWebView API的应用程序的提交”。 链接: https://forums.developer.apple.com/thread/122114
分享这一点,因为我们中有些人可能没有直接或通过第三方使用UIWebview。