小编Sir*_*ong的帖子

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

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

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

我的应用程序包括一个播放 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
}
Run Code Online (Sandbox Code Playgroud)

我也试过(结果相同)

...
UIImageWriteToSavedPhotosAlbum(captureScreen(), nil, nil, nil)
...

func captureScreen() -> UIImage {
    let image = UIApplication.shared.screenShot!
    return image
}
Run Code Online (Sandbox Code Playgroud)

我在网上读到我们不能使用 renderInContext: 因为没有捕获包含视频播放器的 GL 层。所以他们建议实际合并 UIImageView 和 EAGLview ( link1 , link2 ) 的内容。

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

xcode screenshot ios swift wkwebview

6
推荐指数
0
解决办法
784
查看次数

标签 统计

ios ×1

screenshot ×1

swift ×1

wkwebview ×1

xcode ×1