从相机视图中截取屏幕截图
更新
我正在使用sinch库在我的应用程序中进行video通话。 我在video通话期间按钮为整个屏幕截取屏幕截图:
@IBAction func photoAction(_ sender: Any) { let result = UIImage(view: self.videoView) UIImageWriteToSavedPhotosAlbum(result, nil, nil, nil) let result2 = UIImage(view: self.videoController!.localView()) UIImageWriteToSavedPhotosAlbum(result2, nil, nil, nil) }
call
是SINClient
videoController
是SINVideoController
localView
是UIView,摄像头视图
屏幕截图function正常但摄像头视图没有出现在屏幕截图中。
例如,这self.view
编程方式截取self.view
的截图:
这个截图应该如何:
这个问题是公共的,我看到很多用户有相同的问题,他们无法截取相机视图的截图,但没有给出有用的答案。
好吧,如果我想触发一个简单的截图,我通常会使用这段代码:
static func screenshotOf(window: UIWindow) -> UIImage? { UIGraphicsBeginImageContextWithOptions(window.bounds.size, true, UIScreen.main.scale) guard let currentContext = UIGraphicsGetCurrentContext() else { return nil } window.layer.render(in: currentContext) guard let image = UIGraphicsGetImageFromCurrentImageContext() else { UIGraphicsEndImageContext() return nil } UIGraphicsEndImageContext() return image }
我想这也适合你的问题
为了解决这个问题,我要将video通话摄像头从后置摄像头切换到前置摄像头,以便用户可以使用后置摄像头拍照,一旦完成拍照,我就将video通话切换回后置摄像头。