2015-11-24 10 views
19

私は風景にロックされているカメラアプリケーションを持っています。必要に応じて、onPreviewFrame()から取得した生のバイトを回転させ、ビデオをエンコードするために使用します。逆さまのカメラのプレビューバイト配列

このアプローチは、Nexus 5Xと6デバイスでは逆のセンサーが逆さまのフレームを表示するため失敗します。これは onPreviewFrameに渡されたバイト配列の順序には影響しません

(バイト[]を、カメラ)

hereを説明するように、プレビューを回転すると、この場合には、私を助けにはなりませんしたよう

カメラセンサーが逆転していることや生フレームが裏返っていることを検出する方法があるかどうかを知りたいので、回転させるときに余分な補正が加えられます。

+2

に行きます。 [CameraInfo.orientation](https://developer.android.com/reference/android/hardware/Camera.CameraInfo.html#orientation)と[CameraCharacteristics.SENSOR_ORIENTATION](https://developer.android.com/)が表示されます。 reference/android/hardware/camera2/CameraCharacteristics.html#SENSOR_ORIENTATION)は、実際のセンサーの向きに関する正しい情報を提供していません(Nexus 6の背面カメラと正面カメラの両方で90となります)。これまでのところ、私たちが知っている唯一の選択肢は、「特別なケースデバイス」のリストを持つことです。 – DoDo

+1

私がテストに利用できる携帯電話の大半は、後ろ向きカメラでは90、正面カメラでは270を返します。私はこれが回転の指標であると思っています。 –

+3

これは正しいと思われます。 Nexus 6では、フロントカメラは90を返し、他のデバイスでは270を返します。これは方向を決定するために使用できます。また[このような答えを確認](http://stackoverflow.com/a/13176590/213057) – DoDo

答えて

0

Nexus 5xと6のカメラセンサーは180度回転しています。デバイスがリリースされたとき、多くのアプリでこの問題が発生しました。これを考慮してカメラアプリを作成し、サーフェスローテーションを設定する必要があります。

詳細については我々はまた、カメラ2のAPIで、同じ問題を抱えている https://stackoverflow.com/a/35431231/1492034