我需要能够访问委托回调方法,pictureInPictureControllerDidStopPictureInPicture(_:)
WKWebView
的本机AVPictureInPictureController
。 AVPictureInPictureController
没有像旧MPMoviePlayerViewController
那样的全局通知事件,并且我无法创建自己的AVPictureInPictureController
实例以与 Web 视图一起使用以访问委托回调。我找不到有关如何挂钩到WKWebView
对象的此内部AVPictureInPictureController
的文档。我希望至少有一些方法可以用 KVO 做到这一点。
https://developer.apple.com/library/content/documentation/WindowsViews/Conceptual/AdoptingMultitaskingOniPad/QuickStartForPictureInPicture.html
WebKit 框架提供了 WKWebView 类,该类支持 iOS 9 中的画中画。
https://developer.apple.com/documentation/avkit/avpictureinpicturecontrollerdelegate/1614717-pictureinpicturecontrollerdidsto
如果你有任何访问你的AVPictureInPictureController
你可以简单地设置它的委托并实现回调
class MyWebView: WKWebView {
self.myPictureInPictureController.delegate = self
}
extension MyWebView: AVPictureInPictureControllerDelegate {
func pictureInPictureControllerDidStopPictureInPicture(_ pictureInPictureController: AVPictureInPictureController) {
//code
}
}
我能够发现有一个名为PGPictureInPictureProxyPictureInPictureActiveChangedNotification
的通知,当视频移动到画中画时调用,然后在画中画关闭时再次调用。我敢肯定它可以随时更改或删除,但它现在似乎正在工作。