AVCaptureSession暂停和恢复录制

5
我正在使用AVCaptureSession为iOS 5.0制作电影应用程序。我正在给用户提供开始-暂停-开始-停止录制电影的能力。
我定义了三个按钮:
- 开始录制 - 停止录制 - 暂停录制
我能够成功地开始和停止录制。但我无法暂停录制,然后再次恢复录制。我查看了stackoverflow上的这个问题/答案,但我不知道他们如何暂停和恢复视频?我在这里找到了一些其他帖子,但它们中没有一个有任何示例代码,我可以用来尝试它。如果AVAssetWrtier是正确的方法,那么如何将其与AVCaptureSession一起使用?
这是我的三个按钮的代码:
- 开始录制 - 停止录制 - 暂停录制 ios - 暂停视频录制 使用AVFoundation在iOS中暂停和恢复视频捕获以同一文件
        -(IBAction) makeMovieNow
        {
            NSLog(@"makeMovieNow ...");

[session startRunning];
            [movieFileOutput startRecordingToOutputFileURL:movieURL recordingDelegate:self];

        }

    -(IBAction) makeMovieStop
    {
        NSLog(@"makeMovieStop ...");

        //stop recording
        [session stopRunning];
    }

    -(IBAction) makeMoviePause
    {
        NSLog(@"makeMoviePause ...");

        //pause video??? How?

    }

//********** DID FINISH RECORDING TO OUTPUT FILE AT URL **********
- (void)captureOutput:(AVCaptureFileOutput *)captureOutput
didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL
      fromConnections:(NSArray *)connections
                error:(NSError *)error
{

    NSLog(@"didFinishRecordingToOutputFileAtURL - enter");

    BOOL RecordedSuccessfully = YES;
    if ([error code] != noErr)
    {
        NSLog(@"ERROR RECODING MOVIE!!! - enter");

        // A problem occurred: Find out if the recording was successful.
        id value = [[error userInfo] objectForKey:AVErrorRecordingSuccessfullyFinishedKey];
        if (value)
        {
            RecordedSuccessfully = [value boolValue];
        }
    }
    if (RecordedSuccessfully)
    {
        //----- RECORDED SUCESSFULLY -----
        NSLog(@"didFinishRecordingToOutputFileAtURL - success");

        UISaveVideoAtPathToSavedPhotosAlbum(videoPath2, self, nil, nil);    

    }
}

我觉得非常有趣的是,在MAC API中提供了暂停录制选项。http://developer.apple.com/library/mac/#documentation/QuickTime/Reference/QTCaptureFileOutput_Ref/Introduction/Introduction.html - Sam B
2个回答

3

这里有一个样例iPhone,位于http://www.gdcl.co.uk/2013/02/20/iPhone-Pause.html,可以实现此功能。它使用数据输出而不是电影文件输出,以便将数据传递到应用程序。然后,如果启用了录制,应用程序会将样本传递给AVAssetWriter,暂停/恢复后,时间戳会进行调整以消除暂停。

G


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接