我想使用Android_4.1 MediaCodec API对从Camera捕获的视频数据进行编码,然后解码视频数据并在TextureView上显示视频。现在一切正常,但TextureView无法以正确的方式显示已解码的视频。请看这两张照片。
1.Figure1
2.Figure2
图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以正确的方向显示视频?
我不擅长英语,我希望你能理解我。
任何帮助都将不胜感激。谢谢!
答案 0 :(得分:1)
尝试在 setDisplayOrientation 之后添加此行以强制重新渲染TextureView。
mTextureView.requestLayout();
mTextureView.invalidate();
当我试图显示裁剪的视频时,它帮助了我,并且当显示方向改变时,它有时不会裁剪。