xcode 从相机视图中截取屏幕截图

cyvaqqii  于 2023-05-30  发布在  其他
关注(0)|答案(3)|浏览(196)

已更新

我正在使用sinch库在我的应用程序中进行视频通话。我已经在视频通话过程中对整个屏幕进行了截图:

@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,相机视图
截图功能工作正常,但相机视图未出现在截图中。
例如,下面的屏幕截图self.view可编程:

这张截图应该是这样的:

这个问题的commun和我已经看到许多用户有同样的问题,他们不能采取截图的相机视图,但没有得到有用的答案。

xxe27gdn

xxe27gdn1#

如果我想触发一个简单的屏幕截图,我通常会使用以下代码:

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
    }

我想这对你的问题也有帮助

ubof19bj

ubof19bj2#

为了解决这个问题,我不得不将视频通话摄像头从背面切换到正面摄像头,以便用户可以使用背面摄像头拍照,一旦他完成拍照,我将视频通话切换回背面摄像头。

ccgok5k5

ccgok5k53#

在iOS Swift中打开或打开相机时的空白或黑屏(Scandit)

截屏保存黑色图像,不包括摄像头内容

在我的情况下,我正在拍摄屏幕截图,同时扫描护照与scandit SDK和结果,这是一个空白(黑色)的图像见附件中的图像在我的情况下,然后我采取的图像从scandit(SDK)图像缓冲区,并使用该图像作为您的屏幕截图。
您可能会在应用程序中使用一些相机SDK,这些SDK会阻止屏幕截图并返回空白(黑色)图像。
你必须从你的(SDK)图像缓冲区中获取图像。

func idCapture(_ idCapture: IdCapture, didCaptureIn session: IdCaptureSession, frameData: FrameData) {

    let screenShot:UIImage = frameData.imageBuffers[0].image!
    UIImageWriteToSavedPhotosAlbum(screenShot, nil, nil, nil)
}

相关问题