我通过将前置摄像头设置为AVD Manager中的"webcam0"将网络摄像头连接到我的仿真器.当我启动模拟器的相机应用程序时,我收到错误
CameraService::connect X (pid 702) rejected (invalid cameraId 0).
Run Code Online (Sandbox Code Playgroud)
这是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;
}
[...]
}
Run Code Online (Sandbox Code Playgroud)
网络摄像头已正确分配ID为0,因为只有1个摄像头.但是,mNumberOfCameras大概仍为0.这意味着摄像机正在由仿真器注册,但它并没有费心去更新连接的摄像机的数量.
如何连接网络摄像头以便模拟器正确识别?
编辑:命令emulator -webcam-list -avd <name of your AVD>in \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`
Run Code Online (Sandbox Code Playgroud)
当我从Eclipse的AVD管理器启动网络摄像头或使用时emulator -camera-front webcam0 -avd <name of your AVD>,我得到以下窗口:

编辑2:这似乎是模拟器中的一个错误.建议的答案告诉您如何设置相机,但不能解决我的问题.我最终通过使用内置网络摄像头的笔记本电脑解决了这个问题.也许另一个USB网络摄像头可能也有效.
det*_*man 83
UPDATE
在Android Studio AVD中:




Lal*_*h B 40
按照Eclipse中的以下步骤操作.
点击此处获取更多信息: 如何在Android模拟器中使用网络摄像头捕获实时图像?

我建议你看一下这篇评价很高的博客文章,它会设法解决你遇到的问题:
http://www.inter-fuser.com/2009/09/live-camera-preview-in-android-emulator.html
他的代码基于当前的Android API,并且鉴于您使用的是最近的Android API,它应该适用于您的情况.
添加到上面@nurnachman的答案,在 macOS 上,您还需要通过使用从终端启动模拟器来授予模拟器提升的权限。sudo
Webcam0更新
在 Android Studio AVD 中:
- 打开 AVD 管理器:
- 添加/编辑 AVD:
- 单击屏幕底部的高级设置:
- 将您选择的相机设置为前置/后置摄像头:
通过 Android Studio 安装的模拟器:
~/Library/Android/sdk/emulator/emulator -list-avds
Run Code Online (Sandbox Code Playgroud)
通过 Visual Studio for Mac 安装的模拟器:
~/Library/Developer/Xamarin/android-sdk-macosx/emulator emulator -list-avds
Run Code Online (Sandbox Code Playgroud)
通过 Android Studio 安装的模拟器:
sudo ~/Library/Android/sdk/emulator/emulator -avd [Your Emulator Name]
Run Code Online (Sandbox Code Playgroud)
注意:替换
[Your Emulator Name]为步骤 3 中发现的模拟器的名称例如
sudo ~/Library/Android/sdk/emulator/emulator -avd pixel_5_-api_33
通过 Visual Studio for Mac 安装的模拟器:
~/Library/Developer/Xamarin/android-sdk-macosx/emulator -avd [Your Emulator Name]
Run Code Online (Sandbox Code Playgroud)
注意:替换
[Your Emulator Name]为步骤 3 中发现的模拟器的名称例如
sudo ~/Library/Developer/Xamarin/android-sdk-macosx/emulator -avd pixel_5_-api_33
如果通过终端以提升的权限启动 Android 相机后仍然无法工作,请在System Settings.app中导航至Privacy & Security->并确保启用了Camera相机权限Terminal
| 归档时间: |
|
| 查看次数: |
92909 次 |
| 最近记录: |