2013-02-16 8 views
8

ビデオキャプチャを1つのセッションで繰り返し一時停止して再開する機能を実装する方法を理解しようとしていますが、一時停止)をAVFoundationと同じビデオファイルに追加しました。現在のところ、「停止」を押してから「録画」を押すたびに、新しいビデオファイルがiPhoneのアルバムに保存され、別の/新しいファイルに取り込まれます。私は "録音/停止"ボタンを何度も押すことができる必要があります...録画がアクティブなときにビデオをキャプチャするだけです& ... "完了"ボタンを押すと、すべての一緒にセグメント。そして、これはすべて、同じキャプチャセッション/プレビューセッションで発生する必要があります。iOSのAVFoundationで同じファイルのビデオキャプチャを一時停止して再開する

これを試してみる唯一の方法は、「完了」ボタンを押して個々の出力ファイルを1つのファイルにまとめることです。しかし、基本的には、別々のクリップの束は一緒に受け入れられません。プラス、それはちょうどこれが本当に面倒な&方法についてはあまりにも多くのコードで、これについて行く必要があるように思われる。

単一のセッション内でビデオキャプチャを一時停止し、同じファイルへのキャプチャを再開するだけの簡単な方法はありますか?または他のアイデア?

それはあまりにも面倒ではありません場合は、サンプルコードはトンを私を助けるだろう...私はまだ自分自身を教え&を学んでいるので、私は説明で専門用語&用語を以下で素晴らしいではありませんよ。おかげ

編集:これは私がAVFoundationを学ぶために始めていたプロジェクトである...ので、これは私が上記の機能を達成するために変更するのを楽しみにしていたコードです:一般的にhttp://developer.apple.com/library/ios/#samplecode/AVCam/Introduction/Intro.html

+0

この質問に対する回答が見つかった場合は、私にpingを実行してください。 –

+0

@ダニエルあなたは解決策を手に入れましたか? –

答えて

10

キャプチャセッションから出力されたムービーファイルを使用する代わりに、AVCaptureVideoDataOutputを使用し、デリゲートでサンプルをAVAssetWriterInputのインスタンスに渡すことができます。次に、プレビューを録音から切り離すことができます。デリゲートがバッファを資産ライターに転送しない場合、その部分の記録はありません。

同じファイルに対する2番目(以降の)セッションの録音を開始する場合は、停止した時点から順番になるようにタイムスタンプを調整する必要があります。オーディオとビデオの両方に同じ調整を加えて、シンクに留まります。だから、やっかいですが、確かに実行可能です。

編集:あなたは、単にHBRecorderを使用することができますhttp://www.gdcl.co.uk/2013/02/20/iPhone-Pause.html

G

+0

Geraintさん、ありがとうございます。私はまだ客観的に新しいと思って、あなたが言ったことを理解するために自分のやり方をぼそぼそうとしています。私は確かにあなたの答えの背後にある論理を理解し、それはおそらく動作するように思えます。私の問題は、実際にどのように実装するかを考え出すことです。私はあなたが示唆したもののビット/ピースのサンプル/サンプルコードを掘り下げてきましたが、苦労しています。私は狩猟を続けるつもりです。もしこれがうまくいけば、すぐにあなたの答えを受け入れます。その間に、サンプルコードやリンクがあれば、それは私を助けてくれます! Thx –

+0

私はいくつかのコードを持っています。私はそれを出版可能なサンプルに整理します。数日以内に何かが見えない場合は私にpingしてください。 –

+0

@Geraint Davies - 私はまったく同じことを探しています。 Githubにコードを投稿してください。私もあまりにもこれについて書面や例を見つけることができません。おかげで –

1

を、私はstartRunningとstopRunningを使用AVCaptureSessionを使用している場合私はあなたがすると仮定しています。

AVCaptureSessionのドキュメントを参照してください。

+0

実際に録画するときに、セッション全体を停止してカメラがキャプチャするもののライブプレビューを終了しないでください。 –

+0

AVCaptureVideoPreviewLayerをインスタンス化すると、特定のセッションでAVCaptureVideoPreviewLayerをインスタンス化するので、正しくなります。プレビューレイヤーを維持し、キャプチャ/キャプチャを開始できるようにすることを検討していましたか?ビデオレコーダーに似ていますか? – Spectravideo328

+0

はい、プレビューレイヤーはそのままにしておく必要があります。ユーザーは基本的にポイントすることができる必要があります、数秒間キャプチャ、停止....他の何かを見て、キャプチャ、停止....他の何かを見て、ポイント、撮影、停止....など、すべて同じセッションでその後、完了したら、1つのフローファイルで各キャプチャを再生する1つのビデオファイルを作成します。私はまた私の質問を編集してうまくいけばもっと明快になりました。もう少し意味があります。 –

0

でこれを示すサンプルiPhoneアプリがあります。 HBRecorderは、一時停止/開始機能&ビデオセグメント間の美しいアニメーションを備えたビデオ記録ツールです。

+0

[個人用オープンソースライブラリの提供方法](// meta.stackexchange.com/q/229085)をご覧ください。 –

関連する問題