4

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

1.图1

在此处输入图像描述

2.图2

在此处输入图像描述

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

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

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

4

1 回答 1

1

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

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

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

于 2013-10-21T11:22:36.673 回答