首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何知道相机闪光灯是否已经亮起(iOS)?

如何知道相机闪光灯是否已经亮起(iOS)?
EN

Stack Overflow用户
提问于 2013-03-01 10:01:43
回答 3查看 453关注 0票数 1

更新:,我知道如何打开/关闭相机闪光灯。我想知道的是,相机的闪光灯是否是,是否已经亮了。

我想知道相机闪光灯是否在iPhone上亮着,但我还没有在UIImagePickerController中找到任何允许我这样做的方法。我知道我们可以得到cameraFlashMode。但我想知道相机的闪光灯是否已经亮了。

例如,如果模式是UIImagePickerControllerCameraFlashModeAuto,在我进行控制之前,相机闪光灯可以亮或不亮,并且在进行某些操作之前,我想知道相机闪光灯的状态。

EN

回答 3

Stack Overflow用户

发布于 2015-09-29 21:18:00

令人惊讶的是,这真的是没有答案的第一个人甚至没有回答这个问题..。

代码语言:javascript
复制
   func torchButtonPressed() {
    //
    let device = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
    do {
        try device.lockForConfiguration()
    } catch {
        return
    }
    if device.torchMode == AVCaptureTorchMode.Off {
        do {
            device.torchMode = AVCaptureTorchMode.On
            try device.setTorchModeOnWithLevel(AVCaptureMaxAvailableTorchLevel)
        } catch {
            print("no torch")
            return
        }

    } else {
        device.torchMode = AVCaptureTorchMode.Off
    }
    device.unlockForConfiguration()
}
票数 1
EN

Stack Overflow用户

发布于 2013-03-01 10:46:36

您可以使用以下代码来查找

代码语言:javascript
复制
#import <AVFoundation/AVFoundation.h>


- (void) turnTorchOn: (bool) on {

Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");
if (captureDeviceClass != nil) {
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ([device hasTorch] && [device hasFlash]){

    [device lockForConfiguration:nil];
    if (on) {
        NSLog(@"Torch is ON");
    } else {
      NSLog(@"Torch is OFF");

    }
    [device unlockForConfiguration];
}
}
}

编码愉快.!!

票数 0
EN

Stack Overflow用户

发布于 2016-07-12 08:58:45

我也经历过和你一样的问题。

iOS支持两种模式-闪光灯和火炬。下面的代码检查每个代码是否可用&然后根据您调用的代码是否打开或关闭它们。此外,它检查灯是否已经开/关。

闪光灯-

代码语言:javascript
复制
-(void)flashOn {
Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");
if (captureDeviceClass != nil) {
    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    [device lockForConfiguration:nil];

    if ([device hasFlash]) {
        if ([device flashMode] == AVCaptureFlashModeOff) {
            [device setFlashMode:AVCaptureFlashModeOn];
        }
    }

    if ([device hasTorch]) {
        if ([device torchMode] == AVCaptureTorchModeOff) {
            [device setTorchMode:AVCaptureTorchModeOn];
        }
    }

    [device unlockForConfiguration];
  }
}

闪光灯-

代码语言:javascript
复制
-(void)flashOff {
Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");
if (captureDeviceClass != nil) {
    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    [device lockForConfiguration:nil];

    if ([device hasFlash]) {
        if ([device flashMode] == AVCaptureFlashModeOn) {
            [device setFlashMode:AVCaptureFlashModeOff];
        }
    }

    if ([device hasTorch]) {
        if ([device torchMode] == AVCaptureTorchModeOn) {
            [device setTorchMode:AVCaptureTorchModeOff];
        }
    }

    [device unlockForConfiguration];
  }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15155008

复制
相关文章

相似问题

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