【问题标题】:How to make android TextureView to show video in correct orientation如何使 android TextureView 以正确的方向显示视频
【发布时间】:2013-10-21 10:24:31
【问题描述】:

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

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

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

【问题讨论】:

    标签: android video orientation android-mediacodec textureview


    【解决方案1】:

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

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

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

    【讨论】:

    • @metalurgusRelativeLayout 会裁剪子级,所以我使用 FrameLayout/LinearLayout 并设置 TextView 的宽度 = screenHeight & height = screenWidth & setRotation(90),现在效果很好。储存你的小费。
    猜你喜欢
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-30
    • 2015-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多