首页 > 系统 > iOS > 正文

iOS实现屏幕亮度和闪光灯控制的实例代码

2020-07-26 02:47:59
字体:
来源:转载
供稿:网友

这两天学习了iOS屏幕亮度和闪光灯控制,所以,今天添加一点小笔记。

所用涉及框架:AVFoundation框架和ImageIO

读取屏幕亮度:[UIScreen mainScreen].brightness;

设置屏幕亮度:[[UIScreen mainScreen] setBrightness:0.5];

获取环境亮度主要代码:

- (void)getTorch {  AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];  AVCaptureDeviceInput *input = [[AVCaptureDeviceInput alloc]initWithDevice:device error:nil];  AVCaptureVideoDataOutput *output = [[AVCaptureVideoDataOutput alloc] init];  [output setSampleBufferDelegate:self queue:dispatch_get_main_queue()];  self.session = [[AVCaptureSession alloc]init];  [self.session setSessionPreset:AVCaptureSessionPresetHigh];  if ([self.session canAddInput:input]) {    [self.session addInput:input];  }  if ([self.session canAddOutput:output]) {    [self.session addOutput:output];  }  [self.session startRunning];}- (void)captureOutput:(AVCaptureOutput*)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection*)connection {  CFDictionaryRef metadataDict =CMCopyDictionaryOfAttachments(NULL,sampleBuffer,   kCMAttachmentMode_ShouldPropagate);  NSDictionary *metadata = [[NSMutableDictionary alloc] initWithDictionary:  (__bridgeNSDictionary*)metadataDict];  CFRelease(metadataDict);  NSDictionary *exifMetadata = [[metadata objectForKey:(NSString*)kCGImagePropertyExifDictionary] mutableCopy];  float brightnessValue = [[exifMetadata objectForKey:(NSString*)kCGImagePropertyExifBrightnessValue] floatValue];  NSLog(@"%f",brightnessValue);  // 根据brightnessValue的值来打开和关闭闪光灯  AVCaptureDevice*device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];  BOOL result = [device hasTorch];// 判断设备是否有闪光灯  if((brightnessValue <0) && result) {  // 打开闪光灯    [device lockForConfiguration:nil];    [device setTorchMode:AVCaptureTorchModeOn];//开    [device unlockForConfiguration];  }else if((brightnessValue >0) && result) {  // 关闭闪光灯    [device lockForConfiguration:nil];        [device setTorchMode:AVCaptureTorchModeOff];//关    [device unlockForConfiguration];    }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表