現在、アプリケーションの研究を行っています。思いついた興味深いアイデアの1つは、正面カメラとFaceTimeカメラの両方から同時に録画することでした。これが実行可能かどうか知っている人はいますか?
ありがとう :)
編集:私はフロントとリアのカメラを言うことを意味します。両方のカメラから同時に2つの別々のストリームに録画したいと思います。もう少しはっきりしているといいのですが。
これは、APIで許可されているものです。最新のiOS4.2.1を実行しているiPhone4で3つのアプローチを試しました。
まず、両方のビデオデバイスを入力として接続した単一のキャプチャセッションを使用してみました。2番目のデバイスを接続すると、例外が発生します。
キャッチされなかった例外「NSInvalidArgumentException」が原因でアプリを終了しています。理由:「*複数のオーディオ/ビデオAVCaptureInputsは現在サポートされていません。」
次に、2つの異なるセッションを設定し、それぞれに1台のカメラだけを使用して、同時に開始してみました。これにより、最初のセッションで約1秒間フレームが報告されましたが、2番目のセッションが開始されるとすぐに、それ自体の意志の最初の停止が発生しました。'startRunning'を送信する順序によって、最終的にどちらのセッションが他方を強制的に排除するかが決まります。
最後に、簡単なピンポンアプローチを試しました。したがって、2つのセッションを作成し、最初のセッションを開始し、フレームが報告されたらすぐに停止して2番目のセッションを開始します。次に、2番目を停止し、最初の広告を無限に開始します。残念ながら、セッションの開始を要求してから最初のフレームを受信するまでの待ち時間により、2秒ごとに約1フレームが残りました。
もちろん、コードを間違えた可能性はありますが、現在のハードウェアやOSでは不可能だと言いたくなります。AVCaptureSession通知をフックして、この投稿を停止して更新する明確な理由が与えられているかどうかを確認します。
追加:私のプログラムは、各キャプチャセッションから1つずつ、AVCaptureSessionDidStartRunningNotification通知のみを受信します。停止したものは、エラー、中断、またはその他の停止を報告しません。また、オブジェクトやディスパッチキューの再利用など、この問題の原因となる可能性のあるコードの問題を見つけることができません。
AVFoundation APIを使用して、複数のビデオ入力から記録できるようです。ドキュメントによると、AVCaptureSessionで複数のAVCaptureDevice入力を使用できます。iPhone 4では、これはセッションが両方のカメラに両方のAVCaptureDevicesを持つ可能性があることを意味します。実際には、それは実行可能ではないかもしれません。私はそれを試したことがないので、確実に言うことはできません。
標準のUIImagePickerControllerを使用して両方から同時に記録することはできないと思います。