とりあえずiOS Dev CenterのSqureCamを見ながらカメラのプレビュー画面を表示するものを作ってみました。
いつも通りXcode > Create a Xcode Project > Single View Application
ProductName : CameraTest
まず、以下のようなかんじで画面を作成します。
次に、割り当てたViewとBar Button Itemをそれぞれ関連付けを行います。
とりあえずここまででビルドしてエラーがでないことを確認します。
次に、AVFoundation.frameworkをプロジェクトに追加します。
次に、割り当てたView(previewView)の部分にカメラプレビューを表示します。
ViewController.h
@interface ViewController : UIViewController { AVCaptureVideoPreviewLayer *previewLayer; }
ViewController.m
- (void)ViewDidLoad { [super viewDidLoad]; [self setupAVCapture]; } - (void)setupAVCapture { // セッション生成 AVCaptureSession *session = [AVCaptureSession new]; [session setSessionPreset:AVCaptureSessionPreset640x480]; // 入力設定 AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; AVCaptureDeviceInput *deviceInput = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil]; if ([session canAddInput:deviceInput]) [session addInput:deviceInput]; // 画面表示設定 previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session]; [previewLayer setBackgroundColor:[[UIColor blackColor] CGColor]]; [previewLayer setVideoGravity:AVLayerVideoGravityResizeAspect]; CALayer *rootLayer = [previewView layer]; [rootLayer setMasksToBounds:YES]; [previewLayer setFrame:[rootLayer bounds]]; [rootLayer addSublayer:previewLayer]; [session startRunning]; }
一応、これだけでアプリ内のView (previewView)の部分にカメラのプレビューが表示されると思います。
これだけだと何も使えないんでフォーカスを合わせて画面をキャプチャするか機能を追加してみます。
(一応作ってはいるんですが、そのうち載せます)
0 件のコメント:
コメントを投稿