如何让android TextureView以正确的方向显示视频

时间:2013-10-21 10:24:31

标签: android video orientation mediacodec textureview

我想使用Android_4.1 MediaCodec API对从Camera捕获的视频数据进行编码,然后解码视频数据并在TextureView上显示视频。现在一切正常,但TextureView无法以正确的方式显示已解码的视频。请看这两张照片。

1.Figure1

enter image description here

2.Figure2

enter image description here

图1中的TextureView显示了我想要的方向。这个TextureView称为 setRotation(90)。但它不会影响工作。如果我将此TextureView设置为“match_parent / fill_parent / full_screen”,并且还< strong> 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以正确的方向显示视频

我不擅长英语,我希望你能理解我。

任何帮助都将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

尝试在 setDisplayOrientation 之后添加此行以强制重新渲染TextureView。

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

当我试图显示裁剪的视频时,它帮助了我,并且当显示方向改变时,它有时不会裁剪。