我遇到了 thumbnailWebView.drawHierarchy(in:,afterScreenUpdates:)方法的问题,并加载了包含本地视频的HTML代码。
当我捕获webview获取tumbnail然后我点击webview上的视频,视频开始运行(因为声音有效)但图像保持黑色时出现问题。此外,如果我点击全屏选项,视频会显示正确。
代码很简单。图像捕获:
UIGraphicsBeginImageContextWithOptions(self.thumbnailWebView.bounds.size, true, UIScreen.main.scale)
thumbnailWebView.drawHierarchy(in: thumbnailWebView.bounds, afterScreenUpdates: true)
let screenShot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext()
Init WKWebView:
let conf = WKWebViewConfiguration()
self.thumbnailWebView = WKWebView(frame: CGRect(x: 0, y: 0, width: 768, height: 1024), configuration: conf)
thumbnailGeneratorView.addSubview(self.thumbnailWebView)
thumbnailControl = ThumbnailControl()
thumbnailControl.delegate = self
thumbnailWebView.uiDelegate = thumbnailControl
thumbnailWebView.navigationDelegate = thumbnailControl
加载HTML:
self.thumbnailWebView.loadFileURL(contentURL!, allowingReadAccessTo: contentURL!.deletingLastPathComponent())
如果我评论drawHierarchy行,则视频显示正确。
我还尝试使用 view.layer.renderInContext(UIGraphicsGetCurrentContext()!)而不是drawHierarchy,但获得的屏幕截图是白色的。