0

AppleからAVCamの例をダウンロードし、xibファイルをストーリーボードに移行しようとしました。

問題は、「newCaptureVideoPreviewLayer」がビューにビデオを表示していないことです...ビューは「videoPreviewView」へのアウトレットを参照しています。これは、ビデオが表示されるビューです。

これはAVCamの例のコードです。コードを貼り付けて、不要なものを削除しました。

- (void)viewDidLoad
{
    if ([self captureManager] == nil) {
    AVCamCaptureManager *manager = [[AVCamCaptureManager alloc] init];
    [self setCaptureManager:manager];
    [manager release];

    [[self captureManager] setDelegate:self];

    if ([[self captureManager] setupSession]) {
        // Create video preview layer and add it to the UI
        AVCaptureVideoPreviewLayer *newCaptureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:[[self captureManager] session]];
        UIView *view = [self videoPreviewView];
        CALayer *viewLayer = [view layer];
        [viewLayer setMasksToBounds:YES];

        CGRect bounds = [view bounds];
        [newCaptureVideoPreviewLayer setFrame:bounds];

        [newCaptureVideoPreviewLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];

        [viewLayer insertSublayer:newCaptureVideoPreviewLayer below:[[viewLayer sublayers] objectAtIndex:0]];

        [self setCaptureVideoPreviewLayer:newCaptureVideoPreviewLayer];
        [newCaptureVideoPreviewLayer release];

        // Start the session. This is done asychronously since -startRunning doesn't return until the session is running.
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            [[[self captureManager] session] startRunning];
        });
    }
}

[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

誰かが暗示を持っていますか?

4

1 に答える 1

0

camerapreview ビューがストーリーボードの一番上のサブビューであることを確認したい場合があります。最後に追加するか、BringSubviewToFront API を使用します。

写真を撮るを押すと、カメラが写真を写真のカメラロールに保存していると思いますか?そうでない場合は、おそらく初期化コードの問題です。iOS 6 の ismirrored 非推奨コードを変更する必要がありました。

于 2013-03-05T13:33:59.257 に答える