Android Camera.open()不可用/不可访问?

Android Camera.open()不可用/不可访问?,android,camera,android-camera,Android,Camera,Android Camera,我正在尝试创建cameraPreview,我在下面的代码“Camera.open()”中找到了它 我无法访问或无法使用此方法,在对象摄影机中没有此类方法 可以访问 有什么我应该做的吗,或者是在教程里 Java代码: @Override public void surfaceCreated(SurfaceHolder holder) { try { //Open the Camera in p

我正在尝试创建cameraPreview,我在下面的代码“Camera.open()”中找到了它

我无法访问或无法使用此方法,在对象摄影机中没有此类方法

可以访问

有什么我应该做的吗,或者是在教程里

Java代码:

@Override
    public void surfaceCreated(SurfaceHolder holder) 
    {
            try
            {
                    //Open the Camera in preview mode
                    this.camera = Camera.open();
                    this.camera.setPreviewDisplay(this.holder);
            }
            catch(IOException ioe)
            {
                    ioe.printStackTrace(System.out);
            }
    }

您很可能在源文件顶部导入了错误的摄影机类,即


您需要这样做。

您很可能在源文件顶部导入了错误的摄影机类,即


您需要这样做。

这里是完整的摄影机视图类::

class Preview extends SurfaceView implements SurfaceHolder.Callback {
private static final String TAG = "Preview";
SurfaceHolder mHolder;
public Camera camera;

Preview(Context context) {
    super(context);
    mHolder = getHolder();
    mHolder.addCallback(this);
    mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

}

public void surfaceCreated(SurfaceHolder holder) {
    camera = Camera.open();
    camera.setDisplayOrientation(90);
    try {
        camera.setPreviewDisplay(holder);
        camera.setPreviewCallback(new PreviewCallback() {

            public void onPreviewFrame(byte[] data, Camera camera) {
                Log.d(TAG, "onPreviewFrame called at: "
                        + System.currentTimeMillis());
                Preview.this.invalidate();
            }
        });
    } catch (IOException e) {
        e.printStackTrace();
    }
}

public void surfaceDestroyed(SurfaceHolder holder) {
    camera.release();
    camera = null;
}

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
    camera.startPreview();
}

}

这里是完整的摄影机视图类::

class Preview extends SurfaceView implements SurfaceHolder.Callback {
private static final String TAG = "Preview";
SurfaceHolder mHolder;
public Camera camera;

Preview(Context context) {
    super(context);
    mHolder = getHolder();
    mHolder.addCallback(this);
    mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

}

public void surfaceCreated(SurfaceHolder holder) {
    camera = Camera.open();
    camera.setDisplayOrientation(90);
    try {
        camera.setPreviewDisplay(holder);
        camera.setPreviewCallback(new PreviewCallback() {

            public void onPreviewFrame(byte[] data, Camera camera) {
                Log.d(TAG, "onPreviewFrame called at: "
                        + System.currentTimeMillis());
                Preview.this.invalidate();
            }
        });
    } catch (IOException e) {
        e.printStackTrace();
    }
}

public void surfaceDestroyed(SurfaceHolder holder) {
    camera.release();
    camera = null;
}

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
    camera.startPreview();
}

}

按照@Alextsc包括/检查您导入的正确类按照@Alextsc包括/检查您导入的正确类