当前位置: 首页 > 面试题库 >

W / CameraBase:连接相机时发生错误:camera.open()调用为0

曾新
2023-03-14
问题内容

我正在编写一个相机应用程序,每当我调用camera.open()时该应用程序崩溃,然后出现此错误:

W/CameraBase﹕ An error occurred while connecting to camera: 0

这是我打开相机的方法:

public void getCameraInstance(){
    mCamera = null;

    try 
    {
        mCamera = Camera.open(); // attempt to get a Camera instance
    }

    catch (Exception e)
    {
        // Camera is not available (in use or does not exist)

    }
}

更新:

如果您正在阅读本文,请注意,这是针对原始相机API的,不再应用最新版本的相机API(camera2)。

从那时起,您应该使用camera2 api,因为它具有更好的功能并且还具有更好的图像处理管道。

注意仅在不包括API 21(Lolipop)时有效,即不适用于Lolipop及更高版本。


问题答案:

使用以下方法

android.hardware.Camera.open(int cameraId)

您应该传递cameraId,如果您想要前置摄像头ID,则可以使用以下方法

private int findFrontFacingCamera() {

    // Search for the front facing camera
    int numberOfCameras = Camera.getNumberOfCameras();
    for (int i = 0; i < numberOfCameras; i++) {
        CameraInfo info = new CameraInfo();
        Camera.getCameraInfo(i, info);
        if (info.facing == CameraInfo.CAMERA_FACING_FRONT) {
            cameraId = i;
            cameraFront = true;
            break;
        }
    }
    return cameraId;
}
  1. 如果其他应用程序打开了同一台摄像机,则会抛出RuntimeException。

  2. 使用完相机后,您必须调用release(),否则它将保持锁定状态,并且无法用于其他应用程序。

  3. 对于特定的硬件摄像机,您的应用程序一次只能激活一个Camera对象。



 类似资料:
  • 问题内容: 有一个类似的问题,但尚未解决: W /CameraBase:连接相机时发生错误:camera.open()调用为0 我有一个(自然)正在使用相机的应用程序。它一直很好。但是,如果在构建之间没有代码更改,则应用程序开始崩溃(通过Git提交历史记录验证没有代码更改)。 为了进一步验证问题是否出在硬件中,我在另一部手机上运行了相同的代码,并且工作正常。相机以某种方式被锁定,无法打开。 以下是

  • 问题内容: 在Windows上安装了Docker,并额外安装了2个Oracle VM VirualBox和Kitematic。我在Windows 10 PC中禁用了Hyper-V。现在的问题是我无法从DockerHub下载任何Docker映像,甚至我都无法以如下方式运行命令 两端都显示以下错误。 尝试连接时发生错误:获取 http:// localhost:2375 / v1.21 / info

  • 我正在使用mongodb和.NET Core2.2 web API。当我在本地计算机上运行时,我收到以下错误

  • 我对docker和mysql有一个问题(我对docker很陌生),我正在尝试将Symfony3.4与docker一起使用。 我有这个错误: 在AbstractMysqldriver.php第103行中: 驱动程序中发生异常:SQLSTATE[HY000][2002]PHP_NETWORK_GETADDRE SSS:getaddrinfo失败:名称未解析 在pdoConnection.php第47行

  • 我试图用下面的连接字符串连接到SQL服务器,但它给出了这个"错误连接超时过期" 我已尝试telnet,并且它已成功连接。但是,根据代码,即使我尝试指定默认端口,也无法连接。 我有做错什么吗?提前谢谢你。 Telnet结果

  • 我正在尝试使用SQLDeveloper远程连接到Oracle 12c数据库。为了从另一台计算机远程连接,在运行Oracle的计算机上,我在Windows 7防火墙中打开了一个端口。这部分工作了,但由于此错误ORA-12505,监听器现在不让我进入。它说它无法识别我在远程计算机中尝试与SQLDeveloper连接时提供的SID。我甚至尝试将服务名称设置为“编辑器”,但仍然一无所获。 以下是远程计算机