【问题标题】:Android camera preview is not resumed after Pause暂停后无法恢复 Android 相机预览
【发布时间】:2013-05-29 11:37:16
【问题描述】:

我成功创建了一个相机表面视图,它在应用程序启动/重新启动时工作。但它只是显示一个黑屏,在我暂停游戏并恢复它(按主屏幕)之后。我在这里遗漏了什么吗?

这是表面的代码(从主活动创建:

public class CameraView extends SurfaceView implements SurfaceHolder.Callback{

static Camera camera = null;
Surface camSurface;
String TAG = "CameraView";
static SurfaceHolder mHolder;

public CameraView(Context context) {
    super(context);
    getHolder().addCallback(this);
    getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    // TODO Auto-generated constructor stub
}

@Override
public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {
    // TODO Auto-generated method stub

}

@Override
public void surfaceCreated(SurfaceHolder arg0) {
    // TODO Auto-generated method stub

    Log.e(TAG, "Camera view created");

    mHolder = getHolder();

    if(camera == null){
        camera = Camera.open();
    }

    if(camera == null){
        Log.e(TAG, "Null camera");
    }

    try {
        camera.setPreviewDisplay(getHolder());
    } catch (IOException e) {
        // TODO Auto-generated catch block
        camera.release();
        camera = null;
        e.printStackTrace();
    }

}

@Override
public void surfaceDestroyed(SurfaceHolder arg0) {
    // TODO Auto-generated method stub
    synchronized(mHolder){
        if(camera!=null){
            camera.stopPreview();
            camera.release();
            camera = null;
        }
    }
}
}

【问题讨论】:

    标签: android android-camera surfaceview


    【解决方案1】:

    当您离开并返回您的应用程序时,您仍然需要在某些时候调用 camera.startPreview()。我会在我的 surfaceChanged() 方法中使用它。

    确保您的相机实例与首次启动时一样有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-23
      • 2016-08-05
      相关资源
      最近更新 更多