我一直在寻找很长一段时间,我发现了一些提示,但我无法弄清楚如何将此问题应用于我的问题。非常感谢任何帮助。
尝试实现的目标非常简单:
我的应用包含播放YouTube视频的WKWebview(包含一些视频) 覆盖文本)。我添加了一个链接来截取屏幕截图 并将其保存到相机胶卷。
结果:
它在模拟器中完美运行但在设备上我只能看到覆盖文本和背景(应该是视频)的结果是黑色的。
这是我目前的代码(SWIFT 3):
...
// Save screenshot
UIImageWriteToSavedPhotosAlbum(captureScreen(), nil, nil, nil)
...
func captureScreen() -> UIImage {
UIGraphicsBeginImageContextWithOptions(webView!.bounds.size, webView!.isOpaque, 0)
webView!.drawHierarchy(in: webView!.bounds, afterScreenUpdates: false)
let image = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return image
}
我也试过(相同的结果)
...
UIImageWriteToSavedPhotosAlbum(captureScreen(), nil, nil, nil)
...
func captureScreen() -> UIImage {
let image = UIApplication.shared.screenShot!
return image
}
我在网上看到我们不能使用renderInContext:因为没有捕获包含视频播放器的GL层。所以他们建议实际合并UIImageView和EAGLview的内容(link1,link2)。
这听起来不错,但我发现的大多数解决方案都是用Objective-c或相对复杂的(link3,link4,link5)编写的。
我需要帮助才能在SWIFT中找到解决方案。
提前感谢您的时间。