Android:如何在模拟器中使用摄像头?
通过在AVDpipe理器中将前置摄像头设置为“webcam0”,我将一个networking摄像头连接到我的仿真器。 当我启动模拟器的相机应用程序,我得到错误
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; } [...] }
因为只有一个摄像头,networking摄像头已被正确分配了ID。 但是, mNumberOfCameras
大概仍然是0.这意味着相机正在被模拟器注册,但是没有更新连接的相机的数量。
如何连接networking摄像头以便模拟器能够正确识别?
编辑: \android-sdks\tools
的命令emulator -webcam-list -avd <name of your AVD>
给出结果:
List of web cameras connected to the computer: Camera `webcam0` is connected to device `AndroidEmulatorVC0` on channel 0 using pixel format `BGR4`
当我从Eclipse的AVDpipe理器启动networking摄像头或使用emulator -camera-front webcam0 -avd <name of your AVD>
,出现以下窗口:
编辑2:这似乎是在模拟器中的错误。 build议的答案告诉你如何设置相机,但不解决我的问题。 我最终通过使用带有内置摄像头的笔记本电脑解决了这个问题。 也许另一个USB摄像头也可能工作。
在Eclipse中遵循以下步骤。
- 转到 – > AVDpipe理器
- 创build/编辑AVD。
- 硬件>新:
- configuration相机朝后
- 点击属性值,然后select=“webcam0”。
- 一旦完成以上所有的摄像头应该连接。 如果没有,那么你需要检查你的WebCam驱动程序。
点击这里查看更多信息: 如何在android模拟器中使用networking摄像头捕捉实时图像?
UPDATE
在Android Studio AVD中:
- 打开AVDpipe理器:
- 添加/编辑AVD:
- 点击屏幕底部的高级设置:
- 将您select的相机设置为前置/后置摄像头:
我build议你看看这个高度评价的博客文章,它设法解决你所面临的问题:
http://www.inter-fuser.com/2009/09/live-camera-preview-in-android-emulator.html
他的代码基于当前的Android API,并且在您使用最近的Android API的情况下应该适用于您的情况。
我会build议检查驱动程序,如果需要更新它们。
- 如何在Android Studio中查看所有TODO任务?
- ArrayAdapter getView()方法中的“convertView”参数是什么?
- Android Studio无法parsing导入的项目中的R?
- 在Android上与Facebook分享图片和文字
- Android Studio 3.0风味维度问题
- 如何完成一个Android应用程序?
- 如何解决android.os.DeadObjectException android x
- 如何将AIRPLANE_MODE_ON设置为“True”或ON?
- 错误:ConnectionResult {statusCode = INTERNAL_ERROR,resolution = null}