我想使用 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/