相机打开时如何释放相机?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了相机打开时如何释放相机?相关的知识,希望对你有一定的参考价值。
我的应用程序控制相机,最近有无法打开相机的设备发生了大量崩溃报告。按后退按钮可释放相机,但也会禁用后台模式。按主页按钮不会释放相机,打开相机时会导致崩溃,但启用后台模式。
相机应用程序本身打开时如何释放相机?
答案
当您在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;
}
}
希望它会对你有所帮助。
另一答案
当调用相关活动的onPause()
时,释放相机被认为是安全的做法。与此一致,我建议不要将活动的Camera对象从一个Activity传递给另一个Activity。我经常使用片段来更改UI,同时仍保持相机处于活动状态。
有一些特殊情况,即使在onPause()之后应用程序必须使用相机,请参阅例如Detect when another app tries to use the camera。并非在所有情况下这都是可能的,但从来都不容易处理。
以上是关于相机打开时如何释放相机?的主要内容,如果未能解决你的问题,请参考以下文章