###前提・実現したいこと
NSTimerを使って指定時間ごとに写真を撮影したい。
###発生している問題・エラーメッセージ
NSTimerを含むプログラムをどこに配置したらいいかわかりません。
###ソースコード
swift
1import UIKit 2import AVFoundation 3 4class ViewController: UIViewController { 5 6 // 画像のアウトプット 7 var myImageOutput:AVCaptureStillImageOutput! 8 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 // セッションの作成 12 let mySession = AVCaptureSession() 13 //解像度の指定 14 mySession.sessionPreset = AVCaptureSessionPresetLow 15 16 // 撮影に使うカメラ 17 var myCamera:AVCaptureDevice! 18 //デバイス一覧の取得 19 let devices = AVCaptureDevice.devices() 20 for device in devices{ 21 // フロントカメラで撮影する 22 if(device.position == AVCaptureDevicePosition.Front){ 23 myCamera = device as! AVCaptureDevice 24 } 25 26 } 27 28 29 // カメラからVideoInputを取得する 30 do { 31 // 入力元 32 let videoInput = try AVCaptureDeviceInput(device: myCamera) 33 mySession.addInput(videoInput) 34 35 // 出力先 36 myImageOutput = AVCaptureStillImageOutput() 37 mySession.addOutput(myImageOutput) 38 39 // 画像を表示するプレビューレイヤを作る 40 let myVideoLayer = AVCaptureVideoPreviewLayer(session: mySession) 41 myVideoLayer.frame = view.bounds 42 myVideoLayer.videoGravity = AVLayerVideoGravityResizeAspectFill 43 // 最背面になるようにプレビューレイヤを挿入する 44 view.layer.insertSublayer(myVideoLayer, atIndex: 0) 45 46 // セッション開始 47 mySession.startRunning() 48 49 } catch let error as NSError { 50 print("カメラは使えません。\(error)") 51 } 52 } 53 54 // 指定秒ごとに実行する 55 func takePhoto(sender: AnyObject) { 56 // ビデオ出力に接続する 57 let myAVConnection = myImageOutput.connectionWithMediaType(AVMediaTypeVideo) 58 59 // 接続から画像を取得する 60 myImageOutput.captureStillImageAsynchronouslyFromConnection(myAVConnection, completionHandler: { (imageDataBuffer, error) -> Void in 61 // ビデオ画像をキャプチャする 62 let myImageData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(imageDataBuffer) 63 let stillImage = UIImage(data: myImageData) 64 65 // カメラロールに追加する 66 UIImageWriteToSavedPhotosAlbum(stillImage!, self, nil, nil) 67 }) 68 } 69 70}
上記プログラムにしたのプログラムを追加したいと考えています。
swift
1NSTimer.scheduledTimeWithTimeInterval( 2 3.0, 3 target:self, 4 selector: Selector("takePhoto"), 5 userInfo: nil, 6 repeats: true 7) 8
###補足情報(言語/FW/ツール等のバージョンなど)
swift2を使用していて、Xcodeのバージョンも最新の物を使用しています。
ほぼ全くの初心者ですが色々作っていきたいと思っているので、ご助力下さい。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/06 06:38