• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift控制手电筒操作(iOS)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

手电筒是iphone的一个常用功能,最常用的操作就是turn on和turn off,下面我们来实现一个简单的手电筒操作程序:一个按钮来控制iphone手电筒的On和Off,并且按钮的text也做相应的改变。

首先,我们知道手电筒是依附于某个拍摄设备的,我们要想控制它,必须要获取拍摄设备的instance,然后做相应的操作,所以实现步骤如下:

1. 导入AVFoundation库(主要是利用拍摄设备)

2. 创建Media type为Video的设备实例(AVCaptureDevice)

3. 锁定设备请求更新设置(申请独有的硬件访问权限)

4. 修改手电筒的显示模式(on或者off)

5. 解除设置锁定(step3中的锁定和step5中的解锁是成对出现的,修改完成后必须解锁,要不然其他APP就不能对设备设置进行修改了)

下边上代码吧

~~~~~~~~~~~~~我是代码~~~~~~~~~~~~~~~~~~

//
//  ViewController.swift
//  LightControl
//
//  Created by XuAlvin on 3/1/16.
//  Copyright © 2016年 XuAlvin. All rights reserved.
//

import UIKit
//导入AVFoundation库来调用拍摄设备
import AVFoundation

class ViewController: UIViewController {

    
    @IBOutlet weak var btnLightButton: UIButton!
    
    //创建Video设备
    let device = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
    //手电筒显示状态标识
    var isLightOn = true
    override func viewDidLoad() {
        super.viewDidLoad()
        
        //添加button的style,这块可以不写
        self.btnLightButton.layer.borderWidth=0.5;
        self.btnLightButton.layer.borderColor=UIColor.lightGrayColor().CGColor
        self.btnLightButton.layer.cornerRadius=15
        self.btnLightButton.layer.masksToBounds=true
        self.btnLightButton.backgroundColor=UIColor(colorLiteralRed: 255, green: 255, blue: 255, alpha: 0.5)

    }

    //捕获点击按钮
    @IBAction func lightControlButtonTouched(sender: UIButton) {
        if device==nil{
            return
        }
        do{
            //锁定设备以便进行手电筒状态修改
            try device?.lockForConfiguration()
            if isLightOn{
                //设置手电筒模式为亮灯(On)
                device?.torchMode = AVCaptureTorchMode.On
                isLightOn = false
                //改变按钮标题
                self.btnLightButton.setTitle("Turn Off", forState: UIControlState.Normal)
            }else{
                //设置手电筒模式为关灯(Off)
                device?.torchMode = AVCaptureTorchMode.Off
                isLightOn = true
                //改变按钮标题
                self.btnLightButton.setTitle("Turn On", forState: UIControlState.Normal)
            }
            //解锁设备锁定以便其他APP做配置更新
            device?.unlockForConfiguration()
        }catch{
            return
        }
    }
}

  在AVCaputrueDevice这个类中还有个很多关于手电筒(Torch)的操作,大家可以通过官方文档学习~


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap