zoukankan      html  css  js  c++  java
  • iOS 直播-闪光灯的使用

    iOS 直播-闪光灯的使用


    应用场景是这样的,最近公司决定做一款直播类的软件.
    在开发中就遇到了不曾使用过的硬件功能-闪光灯.
    这篇博客将简单介绍一下闪光灯的使用.

    //
    //  ViewController.m
    //  iOS torch-test
    //
    //  Created by caoxu on 16/6/7.
    //  Copyright © 2016年 caoxu. All rights reserved.
    //
    
    #import "ViewController.h"
    #import <AVFoundation/AVFoundation.h>
    
    @interface ViewController ()
    
    @property (nonatomic, strong) AVCaptureSession * session;
    @property (nonatomic, strong) AVCaptureDevice * device;
    @property (nonatomic, strong) NSTimer * timer;
    
    @end
    
    @implementation ViewController
    
    #pragma mark <setter and getter>
    -(AVCaptureSession *)session
    {
        if(_session == nil)
        {
            _session = [[AVCaptureSession alloc] init];
        }
        return _session;
    }
    
    -(AVCaptureDevice *)device
    {
        if(_device == nil)
        {
            _device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
        }
        return _device;
    }
    
    #pragma mark <life cycle>
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
        AVCaptureDeviceInput * input = [[AVCaptureDeviceInput alloc]initWithDevice:self.device error:nil];
        if ([self.session canAddInput:input]) {
            
            [self.session addInput:input];
            
        }
        
    
    }
    
    
    #pragma mark <method>
    - (IBAction)torchon:(id)sender {
        if([self.device hasTorch] && [self.device hasFlash])
        {
            if(self.device.torchMode == AVCaptureTorchModeOff)
            {
                [self.session beginConfiguration];
                [self.device lockForConfiguration:nil];
                [self.device setTorchMode:AVCaptureTorchModeOn];
                [self.device setFlashMode:AVCaptureFlashModeOn];
                [self.device unlockForConfiguration];
                [self.session commitConfiguration];
            }
        }
        
        [self.session startRunning];
        
    }
    - (IBAction)torchoff:(id)sender {
        
        [self.session beginConfiguration];
        [self.device lockForConfiguration:nil];
        
        if(self.device.torchMode == AVCaptureTorchModeOn)
        {
            [self.device setTorchMode:AVCaptureTorchModeOff];
            [self.device setFlashMode:AVCaptureFlashModeOff];
        }
        
        [self.device unlockForConfiguration];
        [self.session commitConfiguration];
        [self.session stopRunning];
        
    }
    
    
    @end
    
    
  • 相关阅读:
    cxVerticalGrid赋值是实时更新
    cxGrid类似pagecontrol的效果
    cxgrid属性说明,每次用的时候费时费力查找。
    做一个平均数,合计数的sql查询
    FDMemTable 提示操作速度尤其是循环
    手机号码验证
    取字符串长度
    DELPHI 获取本月 的第一天 和 最后一天
    SQL Server 断开某个数据库所有连接(还原的时候需要)转自用保留
    元宇宙六大核心技术
  • 原文地址:https://www.cnblogs.com/xubaoaichiyu/p/5567333.html
Copyright © 2011-2022 走看看