読者です 読者をやめる 読者になる 読者になる

Web・IT うんたらら

業務系とWeb系の狭間でIT業界を彷徨いながら備忘録と足跡を残していきます

Swiftでライトやバイブレーションを使う

Swift Objective-C

ちょいちょいObjective-Cの場合と違いますね。

ライトを付ける

前提として、XCodeの[Targets] -> [プロジェクト名] -> [General] -> [Linked Frameworks and Libraries] から、AVFoundation.frameworkを追加しておく必要があります。

まず、Objective-Cの場合

#import <AVFoundation/AVFoundation.h>
            :
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
[device lockForConfiguration:NULL];
device.torchMode = AVCaptureTorchModeOn;   //On
//device.torchMode = AVCaptureTorchModeOff; //Off
[device unlockForConfiguration];

Swiftの場合

import AVFoundation
            :
let device = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
device.lockForConfiguration(nil)
device.torchMode = AVCaptureTorchMode.Off //On
//device.torchMode = AVCaptureTorchMode.On //Off
device.unlockForConfiguration()

swiftになって列挙型(enum)がいい感じになりましたね。

バイブレーションさせる

Objective-Cの場合

#import <AudioToolbox/AudioServices.h>
            :
AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);

Swiftの場合

import AudioToolbox
            :
AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))

こんな風にキャストする必要があります。


※余談ですがSwiftってはてなブログスーパーpre記法対応してないんですね…。