首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVCapturePhotoSettings.flashMode不能用于设置设备的闪存模式

AVCapturePhotoSettings.flashMode不能用于设置设备的闪存模式
EN

Stack Overflow用户
提问于 2019-07-26 05:16:48
回答 1查看 678关注 0票数 0

我有一个可以让用户拍照的控制器。我想在拍照时激活闪光灯,然后立即停用(就像普通的相机应用程序一样)。然而,在我当前的代码中,闪光灯根本不能打开。

代码语言:javascript
复制
let settings = AVCapturePhotoSettings(format: [AVVideoCodecKey: AVVideoCodecType.jpeg])
        guard let backCamera = AVCaptureDevice.default(for: AVMediaType.video)
            else {
                print("Unable to access back camera!")
                return
        }
        do {
            if backCamera.hasTorch {
                try backCamera.lockForConfiguration()
                let settings = AVCapturePhotoSettings(format: [AVVideoCodecKey: AVVideoCodecType.jpeg])
                settings.flashMode = .on
                backCamera.unlockForConfiguration()
            }
        } catch {
            return
        }
        stillImageOutput.capturePhoto(with: settings, delegate: self)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-26 20:31:53

这是因为您也有一个外部设置,而您使用的是错误的设置。

删除外部设置并使用内部设置:)

代码语言:javascript
复制
    guard let backCamera = AVCaptureDevice.default(for: AVMediaType.video)
        else {
            print("Unable to access back camera!")
            return
    }
    do {
        if backCamera.hasTorch {
            try backCamera.lockForConfiguration()
            let settings = AVCapturePhotoSettings(format: [AVVideoCodecKey: AVVideoCodecType.jpeg])
            settings.flashMode = .on
            backCamera.unlockForConfiguration()

            stillImageOutput.capturePhoto(with: settings, delegate: self)
        }
    } catch {
        return
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57210228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档