我想使用 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 以正确的方向显示视频

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

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

最佳答案

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

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

当我尝试显示裁剪过的视频时,它对我有帮助,但有时在显示方向改变时它没有裁剪它。

关于android - 如何让android TextureView以正确的方向显示视频,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19491953/

10-09 13:28