5

AVCaptureSessionを使ってiOS5.0用の動画アプリを作っています。ユーザーがムービーの録画を開始、一時停止、開始、停止できるようにしています

私が定義した3つのボタンは

  • 録音開始

  • 記録を停止

  • 録音を一時停止

録音を正常に開始および停止できます。私ができないことは、録音を一時停止してから再開することです。スタックオーバーフローに関するこの質問/回答を見ましたが、ビデオを一時停止および再開する方法がわかりませんか? ここで他の投稿を見つけましたが、試してみるために使用できるサンプルコードはありません。AVAssetWrtier が適切な方法である場合、AVCaptureSession でどのように使用しますか?

ios - ビデオ録画を一時停止

iOS で AVFoundation を使用して同じファイルのビデオ キャプチャを一時停止および再開する

これが3つのボタンの私のコードです

        -(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);    

    }
}
4

2 に答える 2

3

これを正確に行うサンプルiPhoneがhttp://www.gdcl.co.uk/2013/02/20/iPhone-Pause.htmlにあります。ムービーファイル出力の代わりにデータ出力を使用して、データがアプリに渡されるようにします。次に、記録が有効になっている場合、アプリはサンプルをAVAssetWriterに渡し、一時停止/再開後、タイムスタンプが調整されて一時停止が削除されます。

G

于 2013-02-27T17:55:47.317 に答える
1

最終的に2つのファイルを作成し、それらをマージしました。サンプルコードとチュートリアルはこちら

http://www.raywenderlich.com/13418/how-to-play-record-edit-videos-in-ios

于 2013-02-27T06:06:58.847 に答える