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

2022-09-01 04:39:20

我在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

我该如何解决这个问题?

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


答案 1

在 Android Studio 中,转到 AVD 管理器,单击“操作”中的“编辑”(铅笔)按钮。之后,在下一个出现的窗口中,单击“高级设置”,然后向下滚动,然后在“相机”选项中,选择“前后”网络摄像头”。


答案 2

要在Android模拟器中启用相机,只需在AVD的配置.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>

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

打开安卓SDK和AVD管理器:

  1. 在 AVD 中添加 SD 卡
    在“SD 卡”设置中,设置“大小”的值。要启用相机,必须在模拟器中启用 SD 卡。
  2. 在“硬件”中的“AVD
    Now”下的“硬件”部分下添加相机支持,单击“新建”按钮以添加相机硬件。它将在对话框下打开。从属性下拉列表中选择相机支持,然后单击确定。
  3. 在硬件
    中启用相机支持 新硬件:相机支持在“硬件”部分下可见。将其值设置为“是”,然后按“编辑 AVD”保存更改。
  4. 保存更改并启动模拟器。

推荐