Android摄像头打开/关闭
我已经编写了一个视频通话应用程序,其活动具有成员变量 私人摄影师资源mCameraMediaSourceAndroid摄像头打开/关闭,android,Android,我已经编写了一个视频通话应用程序,其活动具有成员变量 私人摄影师资源mCameraMediaSource 工作正常,但过了一段时间,有时相机不再显示。然后我杀死了整个应用程序,它又能工作了。不确定如何在活动生命周期中处理相机,如onPause()、onResume()等。是否需要在某个时候释放相机?当相机暂停时,如何清除屏幕上的图片。谢谢是的,应该释放相机。在onDestroy中最少,但在OnPause中可能更安全 我在1.6-3.x版本中使用相机的生命周期是: onResume: -
工作正常,但过了一段时间,有时相机不再显示。然后我杀死了整个应用程序,它又能工作了。不确定如何在活动生命周期中处理相机,如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接口的一部分。它用于让您知道何时可以绘制曲面视图。看:你真的应该接受更多的答案;根据我的经验,提供的答案很好。你真的应该接受更多的答案;根据我的经验,所提供的那一个工作得很好。