まゆたまガジェット開発逆引き辞典

電子工作やプログラミングのHowtoを逆引き形式で掲載しています。作りたいモノを決めて学んでいくスタイル。プログラマではないので、コードの汚さはお許しを。参照していないものに関しては、コピペ改変まったく問いません

iPhoneでのリアルタイムビデオ処理の準備

今回はiPhone(iOS4以降)リアルタイムビデオ処理の準備について。
具体的にはここに記載されていますが、一部抜け落ちているというか説明しなくてもサンプル見りゃ分かるだろ的に抜けていますので、流れを補完しておきました。

openFrameworksがiOS5に対応しててiPhoneのUI系に楽に対応ができるならそっちのほうがいいんだけど・・・仕方ない。

カメラからの映像をごにょごにょする場合はUIImagePickerControllerを使うことが多かったと思いますが、iOS4以降はAV Foundation系を使うほうがいいみたいです。特にリアルタイム処理系は。

ということで、AV Foundationフレームワークを使ったビデオ処理の準備が以下になります。
本当はよくないですが、この記事はここの補完をする記事ということで、インスタンス名などをすべて同じにしてあります。

1..xcodeprojファイルをクリックすると出てくるBuild Phasesの「Link Binary With Libraries」の下にある+マークをクリックして、以下のフレームワークを追加します
・AVFondation.framework
・CoreVideo.framework
・CoreMedia.framework

2.ViewController.hを以下のようにします

#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
#import <AVFoundation/AVCaptureSession.h>
#import <CoreMedia/CoreMedia.h>

@interface ViewController : UIViewController  <AVCaptureVideoDataOutputSampleBufferDelegate> {
    AVCaptureSession* session;
    IBOutlet UIImageView*   _imageView;
}

@end

3..xibファイルをクリックして、imageViewを追加する

4.File's OwnerをControl+クリックして、_imageViewとimageView(UIImageViewになってる)と接続する

5.- (void)viewDidLoadの [super viewDidLoad];の下にこのページのList2.を入力する

6. [_session startRunning];
}の下にこのページのList2.を入力する

7.iPhoneを繋いでビルドすれば完成!