iOS全屏捕获带有嵌入式Youtube视频的WKWebview

时间:2017-08-26 16:25:18

标签: ios swift xcode screenshot wkwebview

我一直在寻找很长一段时间,我发现了一些提示,但我无法弄清楚如何将此问题应用于我的问题。非常感谢任何帮助。

尝试实现的目标非常简单:

  

我的应用包含播放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的内容(link1link2)。

这听起来不错,但我发现的大多数解决方案都是用Objective-c或相对复杂的(link3link4link5)编写的。

我需要帮助才能在SWIFT中找到解决方案。

提前感谢您的时间。

0 个答案:

没有答案