由于Exception(在Moto E上)无法启动相机预览

Nid*_*dhi 4 android android-camera

我在Moto E上运行相机时遇到问题.在其他设备上我的代码运行良好但不在Moto E上.可能是因为Moto E没有闪光灯或辅助相机的原因.

private synchronized void startCameraPreview() {


        try {
            previewView.getHolder().addCallback(this);
            previewView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
            camera.setPreviewCallback(null);

            camera.setPreviewDisplay(surfaceHolder);
            camera.startPreview();

        }
        catch (Exception exception) {
            Log.e(TAG, "Can't start camera preview due to Exception", exception);

            listener.onCameraError();
        }
    }
Run Code Online (Sandbox Code Playgroud)

这会给出以下粘贴的错误:

Can't start camera preview due to Exception
 java.io.IOException: setPreviewTexture failed
at android.hardware.Camera.setPreviewDisplay(Native Method)
    at android.hardware.Camera.setPreviewDisplay(Camera.java:474)
    at CameraFragment.startCameraPreview(CameraFragment.java:149)
    at CameraFragment.surfaceCreated(CameraFragment.java:472)
    at android.view.SurfaceView.updateWindow(SurfaceView.java:572)
    at android.view.SurfaceView.access$000(SurfaceView.java:86)
Run Code Online (Sandbox Code Playgroud)

如果有人知道如何处理这个问题?

Ake*_*Jha 6

我通过使用camera.stopPreview()解决了这个错误; 就在camera.setPreviewDisplay()之前.希望这对其他人有用.

只是记录Nidhi的解决方案,作为那些没有阅读评论的人的答案.

但问题的根源仍然让我无法理解.我试着camera.stopPreview以及camera.releaseonPause()(因为我正在崩溃的摄像机继续进行后),但显然没有奏效,直到我试图上述方案.