iOS 12.2-缺少锁屏控件

时间:2019-04-17 10:35:31

标签: ios avfoundation avplayer lockscreen

自从我更新到ios 12.2锁屏控件后,它就停止为我工作了,我不知道为什么。在ios 12.1中工作正常

  1. 应用已启用capabilities->Background mores -> Audio
  2. 我设置了UIApplication.shared.beginReceivingRemoteControlEvents()
  3. 然后我设置

    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))
    
  4. 然后AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback) and AVAudioSession.sharedInstance().setActive(true)

我使用AVPlayerAVPlayer项目。 Locksceen控件永远不会在ios 12.2上显示。任何想法都可能导致此问题吗?谢谢

(我使用xcode 10.2和swift 4.2)

编辑:我能够弄清楚这仅在设备在线时才会发生。如果我立即播放,则会出现锁屏控件,然后在几秒钟内消失。如果稍后播放,它们将不会出现。因此看来,它们在应用启动后几秒钟就起作用了,然后就没有了

编辑2:现在已修复。问题是由应用程序将本地html文件加载到webview中引起的。完全与播放无关,仅此而已。解决方案是不加载webview

2 个答案:

答案 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。