美文网首页
GPUImage闪光灯切换的坑

GPUImage闪光灯切换的坑

作者: 达摩君 | 来源:发表于2017-03-14 10:53 被阅读207次

最近在搞GPUImage,有个需求是切换闪光灯,查了各种资料,到自己的查询中跑的时候还是没有反应。苦苦研究了一个晚上还没有解决。第二天起床刷牙的时候,突然灵光一现,前置摄像头是不是不支持闪光灯。(因为调试的时候都是直接默认前置摄像头了)。马上跑去测试。果然如预期一样。只有开启后置摄像头才能打开闪光灯。(针对GPUImage哦,因为我直接直接调用系统的闪光灯,前置摄像头的时候也能打开闪光灯,但是拍照就停止了,要关掉才能恢复正常。)

随便添加下自己的代码吧

func flashModeChange() {
    if flashMode == .off {
        if videoCamera.inputCamera.hasFlash && videoCamera.inputCamera.hasTorch {
            try? videoCamera.inputCamera.lockForConfiguration()
            if videoCamera.inputCamera.isTorchModeSupported(.on) 
                videoCamera.inputCamera.torchMode = .on
                videoCamera.inputCamera.flashMode = .on
                flashMode = .on
            }
            videoCamera.inputCamera.unlockForConfiguration()
        } else {
        
            let alertV = UIAlertController(title: "提示", message: "只有后置摄像头支持闪光灯哦😁", preferredStyle: .alert)
            let alertAction = UIAlertAction(title: "确定", style: .cancel, handler: nil)
            
            alertV.addAction(alertAction)
            present(alertV, animated: true, completion: nil)
            
        }
    } else {
        if videoCamera.inputCamera.hasFlash && videoCamera.inputCamera.hasTorch {
            
            try? videoCamera.inputCamera.lockForConfiguration()
            if videoCamera.inputCamera.isTorchModeSupported(.off) {
                
                videoCamera.inputCamera.torchMode = .off
                videoCamera.inputCamera.flashMode = .off
                flashMode = .off
            }
            videoCamera.inputCamera.unlockForConfiguration()
        }
    }
}

相关文章

网友评论

      本文标题:GPUImage闪光灯切换的坑

      本文链接:https://www.haomeiwen.com/subject/gebcnttx.html