首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >W/CameraBase:连接到照相机时发生错误: camera.open()调用为0

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

Stack Overflow用户
提问于 2014-10-08 16:24:23
回答 6查看 38.1K关注 0票数 18

我正在编写一个相机应用程序,每当我调用camera.open()时,这个应用程序就会崩溃,然后我得到了这个错误:

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

下面是我打开相机的方式:

代码语言:javascript
运行
复制
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)

    }
}

更新:

如果您正在阅读这篇文章,请注意,这是针对最初的camera2,并且不再应用最新版本的camera2 (camera2)。

从这一点开始,您应该使用camera2 api,因为它具有更大的功能,而且还有更好的图像处理管道。

注不包括API 21 (棒棒糖),即不适用于棒棒糖及以上。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-02-23 16:46:37

使用以下方法

代码语言:javascript
运行
复制
android.hardware.Camera.open(int cameraId)

您应该通过cameraId,如果您想要前面的相机Id,可以使用以下方法

代码语言:javascript
运行
复制
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. 当您使用相机完成时,您必须调用remain (),否则它将保持锁定状态,并且无法用于其他应用程序。
  3. 对于特定的硬件摄像机,您的应用程序一次只能激活一个摄像机对象。
票数 11
EN

Stack Overflow用户

发布于 2016-08-30 18:39:18

你把你的申请上传到电话里。这就是为什么相机许可不被批准的原因。您必须打开设置->应用程序(或类似的东西)并手动批准此权限。

票数 32
EN

Stack Overflow用户

发布于 2016-06-24 12:12:41

在Android 6中,确保你申请了相机的许可。相机访问被认为是'dangerous permissions'之一。

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

https://stackoverflow.com/questions/26261769

复制
相关文章

相似问题

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