美文网首页
手电筒的开和关解决

手电筒的开和关解决

作者: Tomboy_Anan | 来源:发表于2017-02-15 20:47 被阅读85次

    1、首先需要引入AVFoundation.framework框架
    2、在 .h文件中添加属性

    添加#import <AVFoundation/AVFoundation.h>
    @interface LightViewController : UIViewController
    {
    BOOL isLightOn;
    AVCaptureDevice *device;
    }

    @property BOOL isLightOn;
    @end

    1. 在 .m 文件中实现
      .m文件

    import "LightViewController.h"

    @interface LightViewController ()

    @end
    @implementation LightViewController

    @synthesize isLightOn;

    • (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
      {
      self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
      if (self) {
      self.navigationItem.title = @"手电筒";
      }
      return self;
      }

    4>>

    • (void)viewDidLoad
      {
      [super viewDidLoad];
      UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
      [btn setFrame:CGRectMake(80, 150, 100, 80)];
      [btn addTarget:self action:@selector(btnClicked) forControlEvents:UIControlEventTouchUpInside];
      [self.view addSubview:btn];

      //AVCaptureDevice代表抽象的硬件设备
      // 找到一个合适的AVCaptureDevice
      device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
      if (![device hasTorch]) {//判断是否有闪光灯
      UIAlertView *alter = [[UIAlertView alloc]initWithTitle:@"提示" message:@"当前设备没有闪光灯,不能提供手电筒功能" delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:nil, nil];
      [alter show];
      }

      isLightOn = NO;

    }

    -(void)btnClicked
    {
    isLightOn = 1-isLightOn;
    if (isLightOn) {
    [self turnOnLed:YES];
    }else{
    [self turnOffLed:YES];
    }
    }

    //打开手电筒
    -(void) turnOnLed:(bool)update
    {
    [device lockForConfiguration:nil];
    [device setTorchMode:AVCaptureTorchModeOn];
    [device unlockForConfiguration];
    }

    //关闭手电筒
    -(void) turnOffLed:(bool)update
    {
    [device lockForConfiguration:nil];
    [device setTorchMode: AVCaptureTorchModeOff];
    [device unlockForConfiguration];
    }

    相关文章

      网友评论

          本文标题:手电筒的开和关解决

          本文链接:https://www.haomeiwen.com/subject/irnqwttx.html