【问题标题】:Failed to launch Camera when parameters set on Android安卓设置参数时无法启动相机
【发布时间】:2014-07-11 09:13:02
【问题描述】:

当我在相机上设置参数以修改它的不同方面,然后通过 SurfaceView 显示它时,一旦启动应用程序,它就不会显示相机的预览。

@Override
public void onStart() {
    super.onStart();

    imageViewCapturedPhoto = (ImageView) getActivity().findViewById(R.id.imageViewCapturedPhoto);
    imageViewCapturedPhoto.setVisibility(View.INVISIBLE);
    surfaceView = (SurfaceView) getActivity().findViewById(R.id.surfaceView);
    Matrix mirrorMatrix = new Matrix();
    mirrorMatrix.preScale(-1.0f, 1.0f);
    surfaceHolder = surfaceView.getHolder();
    surfaceHolder.addCallback(this);
    surfaceView.invalidate(); }
private void initCamera(int cameraWidth,int cameraHeight){

    if(isPreview == false){
        int numberOfCamerasInDevice = Camera.getNumberOfCameras();
        camera = Camera.open(1);
        surfaceView.invalidate();

        try {
            camera.setPreviewDisplay(surfaceHolder);
            Camera.Parameters parameters = camera.getParameters();
            Camera.Size size = getBestPreviewSize(cameraWidth, cameraHeight);
            parameters.setPreviewSize(size.width, size.height);
            camera.setParameters(parameters);
            camera.setDisplayOrientation(90);
            camera.startPreview();
            isPreview = true;
        } catch (Exception e) {
            Log.i("myApp", "init_camera: " + e);
            return;
        }

如果我评论 Try/Catch 上设置的参数,相机会启动,但没有设置任何参数。

【问题讨论】:

  • 确认您的设备是否支持getBestPreviewSize()的尺寸

标签: java android eclipse parameters camera


【解决方案1】:
final Camera.Parameters params = camera.getParameters();
final Size size = getOptimalSize();
params.setPreviewSize(size.width, size.height);
camera.setParameters(params);

不要使用 getBestPreviewSize() 尝试使用 getOptimalSize()。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    • 1970-01-01
    • 2016-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    相关资源
    最近更新 更多