98

我通过在 AVD 管理器中将前置摄像头设置为“webcam0”来将网络摄像头连接到我的模拟器。当我启动模拟器的相机应用程序时,出现错误

CameraService::connect X (pid 702) rejected (invalid cameraId 0).

以下是 Android 源代码的相关部分:

sp<ICamera> CameraService::connect(
    const sp<ICameraClient>& cameraClient, int cameraId) {

    int callingPid = getCallingPid();

    [...]

    if (cameraId < 0 || cameraId >= mNumberOfCameras) {
        LOGE("CameraService::connect X (pid %d) rejected (invalid cameraId %d).",
            callingPid, cameraId);
        return NULL;
    }

    [...]
}

网络摄像头已正确分配 ID 0,因为只有 1 个摄像头。但是,mNumberOfCameras大概仍然是 0。这意味着模拟器正在注册相机,但它并没有费心更新连接的相机数量。

如何连接网络摄像头以便模拟器正确识别它?

编辑:中的命令emulator -webcam-list -avd <name of your AVD>给出\android-sdks\tools结果:

List of web cameras connected to the computer:
Camera `webcam0` is connected to device `AndroidEmulatorVC0` on channel 0 using pixel format `BGR4`

当我从 Eclipse 的 AVD 管理器或使用启动网络摄像头时emulator -camera-front webcam0 -avd <name of your AVD>,我得到以下窗口:

在此处输入图像描述

编辑2:这似乎是模拟器中的一个错误。建议的答案告诉您如何设置相机,但并没有为我解决问题。我最终通过使用带有内置网络摄像头的笔记本电脑解决了这个问题。也许另一个 USB 网络摄像头也可以工作。

4

3 回答 3

140

更新

在 Android Studio AVD 中:

  1. 打开 AVD 管理器:

AVD 菜单

  1. 添加/编辑 AVD:

特定的 AVD 条

  1. 单击屏幕底部的高级设置:

AVD 高级设置

  1. 将您选择的摄像头设置为前置/后置摄像头:

AVD 相机设置

于 2015-06-11T22:38:35.430 回答
43

在 Eclipse 中执行以下步骤。

  1. 转到 -> AVD 管理器
  2. 创建/编辑 AVD。
  3. 硬件 > 新品:
  4. 配置后置摄像头
  5. 单击属性值并选择 = "webcam0"。
  6. 完成上述所有操作后,应连接网络摄像头。如果没有,那么您需要检查您的网络摄像头驱动程序。

在这里查看更多信息: 如何在 android 模拟器中使用网络摄像头来捕捉实时图像?

在此处输入图像描述

于 2013-01-02T10:54:20.543 回答
3

我建议检查驱动程序并在需要时更新它们。

于 2012-12-31T05:48:43.647 回答