2

GPUImage プロジェクトのサンプル「SimpleVideoFilter」の 1 つに「一時停止/再開」オプションを実装しようとしていますが、これまでのところ、ビデオの「一時停止」の問題を除いてうまくいっています。以下のコードを使用してビデオを一時停止しています

- (void)pauseCameraCapture;
{
    capturePaused = YES; }

- (void)resumeCameraCapture;
{
    capturePaused = NO; }

問題は、ビデオが最後のフレームでスタックし、「一時停止」期間も合計ビデオ期間に含まれることです..

たとえば、5 秒間録画して 10 秒間一時停止し、再び 5 秒間録画を再開した場合、合計録画時間は 10 秒間にする必要があります。 10 秒の「一時停止」の後、最後の 5 秒をもう一度再生します。

私が望むのは簡単です.5秒間記録して10秒間一時停止し、再び5秒間記録を再開すると、合計で10分の記録しか記録されません。

この問題を検索しましたが、この問題を解決するものは見つかりませんでした。

4

2 に答える 2

3

GPUImageVideoCamera を呼び出し[videoCamera pauseCameraCapture];てカメラからのフレーム バッファーの流れを停止し、GPUImageMovieWriter を呼び出し[movieWriter finishRecording];て最初のクリップを完成させる必要があります。

その後、最終的に を呼び出してビデオ カメラを再起動するとき[videoCamera resumeCameraCapture];に、movieWriter の新しい URL に書き込んでいることを確認する必要があります。

後で、作成した個々のクリップを AVFoundation ツールバッグのお気に入りのテクニックでつなぎ合わせ、完成した作品を保存します。

あなたはあまり多くのコードを投稿していないので、私はあなたが何をしているのかについていくつかの仮定を立てています。あなたの質問のヘルプの詳細...

于 2013-11-14T20:22:10.033 に答える
2

質問が古いことは知っていますが、同様のタスクに取り組んでいて、GPUImage を使用して適切な解決策を見つけました。GPUimage から分岐したこのプロジェクトを見つけました。ここで movieWriter クラスは、問題で説明されているように、excat の方法でビデオを一時停止できるように変更されています。

movieWriter.paused=YESビデオを一時停止するときに設定しmovieWriter.paused=NO、ビデオの記録を再開するときに設定するだけです。movieWriter はクラス GPUImageMovieWriterのオブジェクトです

私にとって完璧に機能しました。これが将来誰かを助けることを願っています。

于 2014-06-28T07:58:19.163 に答える