我通过在 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 网络摄像头也可以工作。