Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android摄像头打开/关闭_Android - Fatal编程技术网

Android摄像头打开/关闭

Android摄像头打开/关闭,android,Android,我已经编写了一个视频通话应用程序,其活动具有成员变量 私人摄影师资源mCameraMediaSource 工作正常,但过了一段时间,有时相机不再显示。然后我杀死了整个应用程序,它又能工作了。不确定如何在活动生命周期中处理相机,如onPause()、onResume()等。是否需要在某个时候释放相机?当相机暂停时,如何清除屏幕上的图片。谢谢是的,应该释放相机。在onDestroy中最少,但在OnPause中可能更安全 我在1.6-3.x版本中使用相机的生命周期是: onResume: -

我已经编写了一个视频通话应用程序,其活动具有成员变量 私人摄影师资源mCameraMediaSource


工作正常,但过了一段时间,有时相机不再显示。然后我杀死了整个应用程序,它又能工作了。不确定如何在活动生命周期中处理相机,如onPause()、onResume()等。是否需要在某个时候释放相机?当相机暂停时,如何清除屏幕上的图片。谢谢

是的,应该释放相机。在onDestroy中最少,但在OnPause中可能更安全

我在1.6-3.x版本中使用相机的生命周期是:

  onResume:
   - get a ref to camera with Camera.open();
   - sv = (SurfaceView)this.findViewById(R.id.capture_SurfaceView);
                mHolder = sv.getHolder(); 
                mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
                mHolder.setSizeFromLayout();
                mHolder.addCallback(this); 
  surfaceChanged:
    - Camera.setPreviewDisplayHolder()
    - Camera.startPreview()
  onPause:
    - Camera.stopPreview
    - SurfaceHolder.removeCallback()
    - Camera.release()
这对我来说很好,可以在设备关闭后再打开,或者我的应用程序进入后台


另外,对于可能导致您无法释放相机的未捕获异常,请非常小心。这通常会导致相机硬件锁定,以至于关闭并重新启动应用程序仍然无法打开相机。如果出现这种情况,您需要关闭设备电源。

是的,应该释放摄像头。在onDestroy中最少,但在OnPause中可能更安全

我在1.6-3.x版本中使用相机的生命周期是:

  onResume:
   - get a ref to camera with Camera.open();
   - sv = (SurfaceView)this.findViewById(R.id.capture_SurfaceView);
                mHolder = sv.getHolder(); 
                mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
                mHolder.setSizeFromLayout();
                mHolder.addCallback(this); 
  surfaceChanged:
    - Camera.setPreviewDisplayHolder()
    - Camera.startPreview()
  onPause:
    - Camera.stopPreview
    - SurfaceHolder.removeCallback()
    - Camera.release()
这对我来说很好,可以在设备关闭后再打开,或者我的应用程序进入后台


另外,对于可能导致您无法释放相机的未捕获异常,请非常小心。这通常会导致相机硬件锁定,以至于关闭并重新启动应用程序仍然无法打开相机。如果发生这种情况,您需要重启设备。

SurfaceChanged是SurfaceHolder.Callback接口的一部分。它用于让您知道何时可以绘制曲面视图。请参阅:SurfaceChanged是SurfaceHolder.Callback接口的一部分。它用于让您知道何时可以绘制曲面视图。看:你真的应该接受更多的答案;根据我的经验,提供的答案很好。你真的应该接受更多的答案;根据我的经验,所提供的那一个工作得很好。