zoukankan      html  css  js  c++  java
  • AVCaptureDevice LED闪光灯控制

     

    转载自: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];

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

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

  • 相关阅读:
    Qt5.3中qml ApplicationWindow设置窗口无边框问题
    解决qt5在ubuntu下无法调用fcitx输入中文的问题
    qt4.8中多线程的几种方式
    qt5.2.1在linux下去除最大化和最小化按钮
    最近玩了一下qt5.2.1,顺着写点东西,关于这个版本设置程序主窗口居中
    控制台小游戏-贪吃蛇,c++和c#版
    数据库锁机制(一)——概述
    jQuery插件编写学习+实例——无限滚动
    通过错误处理来理解三次握手和四次挥手
    发现一个木马
  • 原文地址:https://www.cnblogs.com/allanliu/p/4195105.html
Copyright © 2011-2022 走看看