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

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

这是Android源代码的相关部分:

sp CameraService::connect(

const sp& 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;

}

[...]

}

由于只有1个摄像头,因此已为网络摄像头正确分配了ID 0。 但是,emulator -camera-front webcam0 -avd 可能仍为0。这意味着相机正在由仿真器注册,但是它并没有费心更新连接的相机的数量。

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

编辑:\android-sdks\tools中的命令emulator -camera-front webcam0 -avd 给出结果:

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 启动网络摄像头时,出现以下窗口:

be18e95dd535c8aa89a56f8b9530adc1.png

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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐