iOS實(shí)現(xiàn)屏幕亮度和閃光燈控制的實(shí)例代碼
這兩天學(xué)習(xí)了iOS屏幕亮度和閃光燈控制,所以,今天添加一點(diǎn)小筆記。
所用涉及框架:AVFoundation框架和ImageIO
讀取屏幕亮度:[UIScreen mainScreen].brightness;
設(shè)置屏幕亮度:[[UIScreen mainScreen] setBrightness:0.5];
獲取環(huán)境亮度主要代碼:
- (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);
// 根據(jù)brightnessValue的值來(lái)打開和關(guān)閉閃光燈
AVCaptureDevice*device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
BOOL result = [device hasTorch];// 判斷設(shè)備是否有閃光燈
if((brightnessValue <0) && result) {
// 打開閃光燈
[device lockForConfiguration:nil];
[device setTorchMode:AVCaptureTorchModeOn];//開
[device unlockForConfiguration];
}else if((brightnessValue >0) && result) {
// 關(guān)閉閃光燈
[device lockForConfiguration:nil];
[device setTorchMode:AVCaptureTorchModeOff];//關(guān)
[device unlockForConfiguration];
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
iOS開發(fā)中實(shí)現(xiàn)郵件和短信發(fā)送的簡(jiǎn)單示例
這篇文章主要介紹了iOS開發(fā)中實(shí)現(xiàn)郵件和短信發(fā)送的簡(jiǎn)單示例,編程語(yǔ)言依然是傳統(tǒng)的Objective-C,需要的朋友可以參考下2015-09-09
iOS應(yīng)用中UITableView左滑自定義選項(xiàng)及批量刪除的實(shí)現(xiàn)
這篇文章主要介紹了iOS應(yīng)用中UITableView左滑自定義選項(xiàng)及批量刪除的實(shí)現(xiàn),UITableView列表中即通訊錄左滑呼出選項(xiàng)的那種效果在刪除時(shí)能夠?qū)崿F(xiàn)多行刪除將更加方便,需要的朋友可以參考下2016-03-03
iOS 禁止按鈕在一定時(shí)間內(nèi)連續(xù)點(diǎn)擊
本文主要介紹了iOS中禁止按鈕在一定時(shí)間內(nèi)連續(xù)點(diǎn)擊的方法,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02
Apple?Watch?App?Lifecycle應(yīng)用開發(fā)
這篇文章主要為大家介紹了Apple?Watch?App?Lifecycle應(yīng)用開發(fā)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
iOS App設(shè)計(jì)模式開發(fā)中策略模式的實(shí)現(xiàn)示例
這篇文章主要介紹了iOS App設(shè)計(jì)模式開發(fā)中策略模式的實(shí)現(xiàn)示例,例子采用傳統(tǒng)的Objective-C語(yǔ)言編寫,需要的朋友可以參考下2016-03-03
Objective-C的MKNetworkKit開發(fā)框架解析
這篇文章主要介紹了Objective-C的MKNetworkKit開發(fā)框架解析,MKNetworkKit是一個(gè)用于iOS開發(fā)的輕量級(jí)框架,需要的朋友可以參考下2015-11-11

