iOS实现屏幕亮度和闪光灯控制的实例代码
这两天学习了iOS屏幕亮度和闪光灯控制,所以,今天添加一点小笔记。
所用涉及框架:AVFoundation框架和ImageIO
读取屏幕亮度:[UIScreenmainScreen].brightness;
设置屏幕亮度:[[UIScreenmainScreen]setBrightness:0.5];
获取环境亮度主要代码:
-(void)getTorch{ AVCaptureDevice*device=[AVCaptureDevicedefaultDeviceWithMediaType:AVMediaTypeVideo]; AVCaptureDeviceInput*input=[[AVCaptureDeviceInputalloc]initWithDevice:deviceerror:nil]; AVCaptureVideoDataOutput*output=[[AVCaptureVideoDataOutputalloc]init]; [outputsetSampleBufferDelegate:selfqueue:dispatch_get_main_queue()]; self.session=[[AVCaptureSessionalloc]init]; [self.sessionsetSessionPreset:AVCaptureSessionPresetHigh]; if([self.sessioncanAddInput:input]){ [self.sessionaddInput:input]; } if([self.sessioncanAddOutput:output]){ [self.sessionaddOutput:output]; } [self.sessionstartRunning]; } -(void)captureOutput:(AVCaptureOutput*)captureOutputdidOutputSampleBuffer:(CMSampleBufferRef)sampleBufferfromConnection:(AVCaptureConnection*)connection{ CFDictionaryRefmetadataDict=CMCopyDictionaryOfAttachments(NULL,sampleBuffer, kCMAttachmentMode_ShouldPropagate); NSDictionary*metadata=[[NSMutableDictionaryalloc]initWithDictionary: (__bridgeNSDictionary*)metadataDict]; CFRelease(metadataDict); NSDictionary*exifMetadata=[[metadataobjectForKey:(NSString*)kCGImagePropertyExifDictionary]mutableCopy]; floatbrightnessValue=[[exifMetadataobjectForKey:(NSString*)kCGImagePropertyExifBrightnessValue]floatValue]; NSLog(@"%f",brightnessValue); //根据brightnessValue的值来打开和关闭闪光灯 AVCaptureDevice*device=[AVCaptureDevicedefaultDeviceWithMediaType:AVMediaTypeVideo]; BOOLresult=[devicehasTorch];//判断设备是否有闪光灯 if((brightnessValue<0)&&result){ //打开闪光灯 [devicelockForConfiguration:nil]; [devicesetTorchMode:AVCaptureTorchModeOn];//开 [deviceunlockForConfiguration]; }elseif((brightnessValue>0)&&result){ //关闭闪光灯 [devicelockForConfiguration:nil]; [devicesetTorchMode:AVCaptureTorchModeOff];//关 [deviceunlockForConfiguration]; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。