HOME > アプリ開発 > [iOS7]LEDライトを制御する方法

[iOS7]LEDライトを制御する方法

iOS7端末でLEDランプを点灯させるための方法を紹介します。

実装方法

AVFaundation.frameworkのAVCaptureDeviceというクラスを使って実現できます。 実装方法はこんな感じです。

    #!!{"brush":"objc","title":"ViewController.m"}
    @implementation ViewController{
        AVCaptureSession *captureSession;
    }

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        //captureSession = [self session];
    }
    //LEDライトを点灯
    -(IBAction)lighton:(id)sender {
        [captureSession startRunning];
        NSError *error = nil;
        AVCaptureDevice *captureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
        [captureDevice lockForConfiguration:&error];
        captureDevice.torchMode = AVCaptureTorchModeOn;
        [captureDevice unlockForConfiguration];
    }
    //LEDライトを消灯
    -(IBAction)lightoff:(id)sender {
        NSError *offerror = nil;
        AVCaptureDevice *offcaptureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

        [offcaptureDevice lockForConfiguration:&offerror];
        offcaptureDevice.torchMode = AVCaptureTorchModeOff;
        [offcaptureDevice unlockForConfiguration];
    }

    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }

ソースコードの解説

AVCaptureDeviceをインスタンス化して「torchMode」というプロパティの値を「AVCaptureTorchModeOn」にすればLED点灯します。 逆に「AVCaptureTorchModeOff」にすると消灯します。 LEDランプは懐中電灯アプリなどでよく利用されています。 是非参考にしてみてください。

サンプルコード

サンプルコードをGitHubにアップしておきますので自由にお使いください。

https://github.com/imagepit/LedControllSample

参考サイト

■iPhone4のLEDフラッシュを使って、ライトを点灯させる方法

http://applewalker.blog8.fc2.com/?no=144

■AVFondation.frameworkを使って懐中電灯アプリを作る

http://luminosite-jwell.blogspot.jp/2012/03/avfondationframework.html