3

AVCaptureVideoPreviewLayer (camera.app など) の回転をロックするための果てしない探求の中で、VC コンテインメントを試すことにしました。

私の考えでは、AVCaptureVideoPreviewLayer コードを別の VC に配置し、その回転を無効にすると、背景レイヤー (拡張現実アプリ) としてロックされた「ビュー」を持つことができるはずです。

しかし、これを実行しようとすると、AVCaptureVideoPreviewLayer がまったく機能せず、カメラ ビデオが表示されません。

以下は私のセットアップです。

ViewController.mで:

    @property (nonatomic, strong, readwrite) cameraViewController *cameraVC;

-(void) viewDidAppear:(BOOL)animated
{
        self.cameraVC = [self.storyboard instantiateViewControllerWithIdentifier:@"cameraVC"];

        [self addChildViewController:self.cameraVC];

        [self.view addSubview:self.cameraVC.view];

cameraViewController.mで:

-(void) viewDidAppear:(BOOL)animated
{
    NSLog(@"cameraViewController : viewDidAppear");

     self.captureManager = [[CaptureSessionManager alloc] init];
     [self.captureManager addVideoInput];
     [self.captureManager addVideoPreviewLayer];

     CGRect layerRect = self.cameraView.bounds;
     [[self.captureManager previewLayer] setBounds:layerRect];
     [[self.captureManager previewLayer] setPosition:CGPointMake(CGRectGetMidX(layerRect), CGRectGetMidY(layerRect))];

     [self.cameraView.layer addSublayer:self.captureManager.previewLayer];

     [[self.captureManager captureSession] startRunning];

}

しかし、cameraViewController.mをストーリーボードで最初に自動的にロードされるルート コントローラーに設定すると、カメラ ビデオ (AVCaptureVideoPreviewLayer) は正常に動作します。(マイナス回転の煩わしさ)

子 VC ではなくルート VC として機能するのはなぜですか?

[XCode 4.5、iOS 6.0、およびストーリーボードを使用しています。]

4

0 に答える 0