注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

尐鬼じ☆ve伱

和你在一起的日子

 
 
 

日志

 
 

[iphone] LED闪光灯控制 (转)  

2012-06-12 18:02:22|  分类: ios 开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
http://blog.csdn.net/cloudhsu/article/details/7202368

  1. #import <AVFoundation/AVFoundation.h>  
  2.   
  3. void CBLediOS::turnOnLed()  
  4. {  
  5.     AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];  
  6.     if ([device hasTorch]) {  
  7.         [device lockForConfiguration:nil];  
  8.         [device setTorchMode: AVCaptureTorchModeOn];  
  9.         [device unlockForConfiguration];  
  10.     }  
  11. }  
  12. void CBLediOS::turnOffLed()  
  13. {  
  14.     AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];  
  15.     if ([device hasTorch]) {  
  16.         [device lockForConfiguration:nil];  
  17.         [device setTorchMode: AVCaptureTorchModeOff];  
  18.         [device unlockForConfiguration];  
  19.     }  
  20.       
  21. }  

这段代码是我昨天刚上传的iphone手电筒中的一部分代码

代码示范了如何开启iphone上的闪光灯

AVCaptureDevice必须要引入AVFoundation.framework

defaultDeviceWithMediaType需传入一个字串,在这个例子传入了AVMediaTypeVideo以取得摄像头

AVMediaTypeVideo是ios4.0以上提供的一个const NSString,声明在AVMediaFormat.h.

其他Media Type的声明

  1. NSString *const AVMediaTypeVideo;  
  2. NSString *const AVMediaTypeAudio;  
  3. NSString *const AVMediaTypeText;  
  4. NSString *const AVMediaTypeClosedCaption;  
  5. NSString *const AVMediaTypeSubtitle;  
  6. NSString *const AVMediaTypeTimecode;  
  7. NSString *const AVMediaTypeTimedMetadata;  
  8. NSString *const AVMediaTypeMuxed;  

若是要检测装置是否提供该功能,可以透过

- (BOOL)hasMediaType:(NSString *)mediaType

来取得

取得摄像头后,我们可以透过

@property(nonatomic, readonly) BOOL hasTorch

@property(nonatomic, readonly) BOOL hasFlash

来判断该摄像头是否有提供闪光灯

我是要持续开启所以使用Torch Mode

lockForConfiguration跟unlockForConfiguration是配对的API

呼叫lockForConfiguration就可以控制硬件了

控制完毕后要呼叫unlockForConfiguration

[device setTorchMode: AVCaptureTorchModeOn];

[device setTorchMode: AVCaptureTorchModeOff];

这两行代码,就是开关闪光灯的代码

注意此代码要在真机下作用

  评论这张
 
阅读(103)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017