2

AVCaptureVideoDataOutput:setSampleBufferDelegate セレクターを介して個々のフレームを処理しているときに、前面カメラの使用から背面カメラの使用に切り替えようとすると、興味深い問題に遭遇しました。カメラ スワップが機能し、表示しているプレビュー画面が見栄えがよくなりました。キャプチャした結果のフレームがポートレート モードではなく、ランドスケープ モードになっているだけです。また、前面カメラから背面カメラに切り替えると、背面カメラが風景フレームをキャプチャします。この場合、入力を交換すると何かが台無しになっていると思われます-間違っているのは入力ではありません。AVCaptureSession を正面向きのカメラで開始することで、この理論を検証しました。バッファ デリゲートに渡されたフレームは正しくポートレート モードになっています。私'

AVCam のデモからインスピレーションを得ました。そのコードと私のコードの疑わしい違いは、AVCaptureMovieFileOutput に記録することです。個々のフレームを処理していません。

何か案は?デバイス入力を交換すると、プロセッサに送信されるフレームの向きが変わるのはなぜですか?

返信ありがとうございます。

4

1 に答える 1

0

あはは!私はそれを考え出した。何らかの理由で、デバイス入力を切り替えた後、ビデオ出力の AVCaptureConnection の向きが横向きにリセットされていました。この問題を解決するには、入力を交換した後、ビデオ出力の AVCaptureConnection に向きを縦向きに設定するよう明示的に要求します。

于 2012-03-13T06:29:50.530 に答える