4

Android_4.1 MediaCodec API を使用して、カメラからキャプチャしたビデオ データをエンコードし、ビデオ データをデコードして TextureView にビデオを表示したいと考えています。これですべて問題ありませんが、TextureView はデコードされたビデオを正しい向きで表示できませんでした。この2枚の写真を見てください。

1.図1

ここに画像の説明を入力

2.図2

ここに画像の説明を入力

Figure1 の TextureView は、必要な向きを示しています。この TextureView はsetRotation ( 90)と呼ばれます。しかし、常に機能するとは限りません。

ここに私のカメラのパラメータがあります:

    mCamera.setDisplayOrientation(90);
    Parameters parameters = mCamera.getParameters();
    parameters.setPreviewFormat(ImageFormat.NV21);
    parameters.setPreviewSize(640, 480);
    mCamera.setParameters(parameters);
    getSupportedCameraParams();

TextureView の width = screenHeight と height = screenWidthを設定しようとしましたが、 parameters.setPreviewSize(480, 640)を設定しようとしましたが、機能しません。

私の質問は、ビデオを正しい向きで表示するためにフルスクリーンの TextureView を作成するにはどうすればよいですか?

私は英語が苦手です、あなたが私を理解してくれることを願っています。

どんな助けでも大歓迎です.Thank!

4

1 に答える 1

1

DisplayOrientation を設定した後にこの行を追加して、TextureViewを強制的に再レン​​ダリングしてみてください。

mTextureView.requestLayout();
mTextureView.invalidate();

トリミングされたビデオを表示しようとしていたときに役立ちましたが、表示の向きが変わったときにトリミングされないことがありました。

于 2013-10-21T11:22:36.673 に答える