我的应用程序控制着摄像头,最近有很多设备无法打开摄像头的崩溃报告。按后退按钮可释放相机,但也会禁用背景模式。按下主页按钮不会释放相机,导致打开相机时发生崩溃,但仍会启用背景模式。
当摄像头应用本身打开时,如何释放摄像头?
发布于 2015-04-29 12:33:15
当您在android应用程序中使用android硬件摄像头时,您应该释放它,以便其他应用程序或您的应用程序可以使用它。在移动到应用程序中的另一个活动之前,释放相机是一种很好的做法。
使用下面的代码-
protected void onDestroy(){
if(camera!=null){
camera.stopPreview();
camera.setPreviewCallback(null);
camera.release();
camera = null;
}
}上面的代码将释放硬件摄像头,它是使用Camera.open();方法打开的。
如果你有自定义的预览,那么你必须在你的surfaceDestroyed方法中使用-
public void surfaceDestroyed(SurfaceHolder holder) {
if(camera!=null){
camera.stopPreview();
camera.setPreviewCallback(null);
camera.release();
camera = null;
}
}希望能对你有所帮助。
发布于 2018-08-31 00:29:34
在调用相关活动的onPause()时释放摄像头被认为是安全的做法。与此一致,我建议不要将活动的相机对象从一个活动传递到另一个活动。我经常使用片段来改变用户界面,同时保持摄像头处于活动状态。
有一些特殊情况,当应用程序必须使用摄像头,即使在onPause()之后,请参见例如。并不是在所有情况下这都是可能的,但从来都不是很容易处理的。
https://stackoverflow.com/questions/29934397
复制相似问题