我通过在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 启动网络摄像头时,出现以下窗口:
编辑2:这似乎是模拟器中的错误。 建议的答案会告诉您如何设置相机,但不能为我解决问题。 我最终通过使用带有内置网络摄像头的笔记本电脑解决了该问题。 也许另一个USB网络摄像头可能也起作用。