【发布时间】:2015-01-31 21:56:12
【问题描述】:
在 iOS 8 之前,只要媒体播放器从 UIWebView 进入全屏模式,就会发送 UIMoviePlayerControllerDidEnterFullscreenNotification 通知。在 iOS 8 中,这不会发生,有些人建议改为收听AVPlayerItemBecameCurrentNotification 通知。这似乎不是从 WKWebView 发送的。侦听 UIWindowDidBecomeVisibleNotification 通知不起作用,因为它会针对所有添加的窗口(包括广告网络等)触发
底线,我整晚都在研究这个,我似乎无法弄清楚如何确定视频是否使用 WKWebView 全屏打开。任何帮助将不胜感激。
编辑:为了确认,我创建了一个空白项目。添加了一个 UIWebView 和 AVPlayerItemBecameCurrentNotification 监听器,当我播放视频并进入全屏时它被触发。我将该 UIWebView 切换为 WKWebView 并且不再触发该通知。
【问题讨论】:
-
我能找到的最好的方法是
UIWindowDidBecomeKeyNotification,用于确定另一个窗口何时接管。幸运的是,当我创建横幅广告时,这并没有触发。然后我设置了一个windowBecameKey变量并在UIWindowDidBecomeHiddenNotification上对其进行了测试。我看到的唯一可能使这有点脆弱的是UIWindowDidBecomeKeyNotification在全屏窗口隐藏之前再次触发。如果由于某种原因,它随后触发,它可能会破坏事物。 -
可以从 WKWebView stackoverflow.com/questions/55377677/…找到任何实际的 avplayeritem 实例