我正在使用谷歌官方sample来使用Camera API 2来处理视频录制.但问题是我无法全屏显示,因为我将屏幕方向仅限于肖像.这是我编辑的xml和official xml.
我认为这里是将视频屏幕尺寸按纵横比设置为TextureView,但我无法将其设置为全屏.任何帮助是极大的赞赏.
mVideoSize = chooseVideoSize(map.getOutputSizes(MediaRecorder.class));
mPreviewSize = chooseOptimalSize(map.getOutputSizes(SurfaceTexture.class),width,height,mVideoSize);
int orientation = getResources().getConfiguration().orientation;
if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
mTextureView.setAspectRatio(mPreviewSize.getWidth(),mPreviewSize.getHeight());
} else {
mTextureView.setAspectRatio(mPreviewSize.getHeight(),mPreviewSize.getWidth());
}
最佳答案
您需要处理预览大小以控制录制的屏幕大小.使用相同的chooseVideoSize方法通过获取SurfaceTexture类的输出大小来全屏预览.
private static Size chooseVideoSize(Size[] choices) {
for (Size size : choices) {
if (size.getWidth() == size.getHeight() * 4 / 3 && size.getWidth() <= 1080) {
return size;
}
}
Log.e(TAG,"Couldn't find any suitable video size");
return choices[choices.length - 1];
}
那是
mPreviewSize = chooseVideoSize(map.getOutputSizes(SurfaceTexture.class));