【发布时间】:2015-04-12 09:31:03
【问题描述】:
我正在使用 Intel Inde 媒体库(特别是此示例:https://github.com/INDExOS/media-for-mobile/blob/master/Android/samples/apps/src/com/intel/inde/mp/samples/CameraCapturerActivity.java)
我的目标是在纵向模式下设置全屏预览并以纵向模式录制视频。在横向模式下一切都很好(全屏预览和录制)。但是在纵向模式下,我无法拉伸预览以垂直填充屏幕(即使我将表面视图设置为最大尺寸)。我得到的最大尺寸是方形图像预览。我尝试让表面视图大于屏幕,但仍然坚持方形预览和录制。
这是我的预览屏幕目前的样子: http://imgur.com/XUznvF1
这是我的代码:
public void createCamera()
{
Camera camera = Camera.open();
Camera.Parameters parameters = camera.getParameters();
List<Camera.Size> supportedResolutions = camera.getParameters().getSupportedPreviewSizes();
parameters.setPreviewSize(supportedResolutions.get(0).width,
supportedResolutions.get(0).height);
camera.setDisplayOrientation(90);
camera.setParameters(parameters);
}
public void createPreview()
{
GLSurfaceView surfaceView = new GLSurfaceView(getActivity().getApplicationContext());
//This code is used to get display size to set surface view size
Display display = getActivity().getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
surfaceView.setLayoutParams(new FrameLayout.LayoutParams(width, height));
//Used to test that the surfaceview does cover the whole screen
//surfaceView.setBackgroundColor(Color.RED);
((RelativeLayout)view.findViewById(R.id.myview)).addView(surfaceView, 0);
preview = capture.createPreview(surfaceView, camera);
preview.start();
}
【问题讨论】:
-
您希望它扭曲以垂直填充屏幕,还是保持正确的纵横比?
-
我想要正确的纵横比并垂直填充(如果我使用默认相机应用并获得全屏无失真预览,则类似)
标签: android opengl-es android-camera surfaceview intelinde