とりあえず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 件のコメント:
コメントを投稿