首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在摄像头打开时释放摄像头?

如何在摄像头打开时释放摄像头?
EN

Stack Overflow用户
提问于 2015-04-29 12:29:40
回答 2查看 971关注 0票数 1

我的应用程序控制着摄像头,最近有很多设备无法打开摄像头的崩溃报告。按后退按钮可释放相机,但也会禁用背景模式。按下主页按钮不会释放相机,导致打开相机时发生崩溃,但仍会启用背景模式。

当摄像头应用本身打开时,如何释放摄像头?

EN

回答 2

Stack Overflow用户

发布于 2015-04-29 12:33:15

当您在android应用程序中使用android硬件摄像头时,您应该释放它,以便其他应用程序或您的应用程序可以使用它。在移动到应用程序中的另一个活动之前,释放相机是一种很好的做法。

使用下面的代码-

代码语言:javascript
复制
protected void onDestroy(){

  if(camera!=null){
        camera.stopPreview();
        camera.setPreviewCallback(null);

        camera.release();
        camera = null;
    }
}

上面的代码将释放硬件摄像头,它是使用Camera.open();方法打开的。

如果你有自定义的预览,那么你必须在你的surfaceDestroyed方法中使用-

代码语言:javascript
复制
public void surfaceDestroyed(SurfaceHolder holder) {

    if(camera!=null){
        camera.stopPreview();
        camera.setPreviewCallback(null);

        camera.release();
        camera = null;
    }
}

希望能对你有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2018-08-31 00:29:34

在调用相关活动的onPause()时释放摄像头被认为是安全的做法。与此一致,我建议不要将活动的相机对象从一个活动传递到另一个活动。我经常使用片段来改变用户界面,同时保持摄像头处于活动状态。

有一些特殊情况,当应用程序必须使用摄像头,即使在onPause()之后,请参见例如。并不是在所有情况下这都是可能的,但从来都不是很容易处理的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29934397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档