IOS 之 使用闪光灯当手电筒

首先导入

#import <AVFoundation/AVFoundation.h> 头文件和引入AVFoundation库文件


头文件声明变量

@interface UTTorchViewController : UIViewController

@property (strong, nonatomic) AVCaptureDevice *device;
@property (assign, nonatomic) BOOL isLighOn;
@property (strong, nonatomic) UIButton *btn;


- (void)press:(id)pSender;

@end

代码文件如下

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    _btn = [[UIButton alloc] initWithFrame:CGRectMake(10, 50, 300, 300)];
    [_btn setBackgroundImage:[UIImage imageNamed:@"torch_off"] forState:UIControlStateNormal];
    [_btn addTarget:self action:@selector(press:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:_btn];
    
    _device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    if ( ![_device hasTorch] )
    {
        UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"提示" message:@"当前设备没有闪光灯,不支持手电筒功能!" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
        [av show];
    }
    
    [self setIsLighOn:NO];
    // Do any additional setup after loading the view from its nib.
}


#pragma mark - Custom method
- (void)press:(id)pSender
{
    if ( _isLighOn )
    {
        [_device lockForConfiguration:nil];
        [_device setTorchMode:AVCaptureTorchModeOff];
        [_device unlockForConfiguration];
        [_btn setBackgroundImage:[UIImage imageNamed:@"torch_off"] forState:UIControlStateNormal];
        _isLighOn = NO;
    }else
    {
        [_device lockForConfiguration:nil];
        [_device setTorchMode:AVCaptureTorchModeOn];
        [_device unlockForConfiguration];
        [_btn setBackgroundImage:[UIImage imageNamed:@"torch_on"] forState:UIControlStateNormal];
        _isLighOn = YES;
    }
}

就是这么简单

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值