Android模拟器:无法启动网络摄像头以在模拟器中捕获图片

Ale*_*aro 34 java android emulation android-virtual-device android-studio

我在Android Studio的AVD管理器中创建了一个armeabi API 21模拟器,将其设置为使用网络摄像头作为前置摄像头,然后启动它.问题是它无法打开它,因为我收到此错误:

emulator: ERROR: camera_device_start_capturing: VIDIOC_STREAMON on camera '/dev/video0' has failed: Timer expired
emulator: ERROR: _camera_client_query_start: Cannot start camera '/dev/video0' for NV21[640x480]: Inappropriate ioctl for device
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

网络摄像头使用其他软件正常工作.操作系统是Ubuntu 14.04.

BST*_*aal 17

在Android Studio中,转到AVD Manager,单击Actions中的编辑(铅笔)按钮.之后,在下一个出现的窗口中,单击"高级设置",然后向下滚动并在"摄像机"选项中,选择前后摄像头.

  • 正如我所说,我配置模拟器使用前置摄像头.不管怎么说,还是要谢谢你 (2认同)

小智 12

要在Android模拟器中启用相机,只需在AVD的config.ini文件中添加以下突出显示的代码即可.您可以在config.ini文件<userdirectory>/.android夹下找到该文件.

文件: ~/.android/config.ini

hw.lcd.density=160<br>
skin.name=HVGA<br>
skin.path=platforms\android-9\skins\HVGA<br>
hw.cpu.arch=arm<br>
abi.type=armeabi<br>
vm.heapSize=24<br>
image.sysdir.1=platforms\android-9\images\<br>
hw.camera=yes<br>
sdcard.size=64M<br>
Run Code Online (Sandbox Code Playgroud)

如果您没有找到该config.ini文件或想通过Android SDK和AVD Manager启用相机支持,请执行以下操作:

打开Android SDK和AVD Manager:

  1. 在AVD中添加SD卡在
    SD卡设置中,设置大小的值.要启用摄像头,必须在仿真器中启用SD卡.
  2. 在AVD
    下的硬件中添加相机支持现在在硬件部分下,单击新建按钮添加相机硬件.它将打开以下对话框.从Property下拉列表中选择Camera support,然后单击Ok.
  3. 在硬件中启用相机支持
    新硬件:在硬件部分下可以看到相机支持.将其值设置为yes并按Edit AVD保存更改.
  4. 保存更改并启动模拟器.


bon*_*nyz 7

您可以尝试手动编辑AVD的配置文件

〜/ .android/AVD/yourAvdName/config.ini中

通过添加此行:

hw.camera=yes
Run Code Online (Sandbox Code Playgroud)

UPDATE

您可以尝试指定网络摄像头的真实分辨率:

hw.camera.maxHorizontalPixels=XXX
hw.camera.maxVerticalPixels=XXX
Run Code Online (Sandbox Code Playgroud)

请记住,默认值maxHorizo​​ntalPixels640maxVerticalPixels480,所以chaning这个值可以帮助你解决你的问题.

  • `hw.camera=yes` 解决了我的问题!太棒了!奇怪的是,如果您使用 AVD 管理器保存 AVD 配置,它会删除 `hw.camera=yes` 变量。oO (2认同)