我在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。
答案 0 :(得分:18)
在Android Studio中,转到AVD Manager,单击Actions中的编辑(铅笔)按钮。之后,在下一个出现的窗口中,单击“高级设置”,然后向下滚动并在“摄像机”选项中,选择前后摄像头。
答案 1 :(得分: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>
如果您没有找到config.ini
文件或想要通过Android SDK和AVD Manager启用相机支持,请执行以下操作:
打开Android SDK和AVD Manager:
答案 2 :(得分:6)
您可以尝试手动修改
下 AVD的配置文件〜/ .android / AVD / yourAvdName / config.ini中
添加以下行:
hw.camera=yes
<强>更新强>
您可以尝试指定网络摄像头的真实分辨率:
hw.camera.maxHorizontalPixels=XXX
hw.camera.maxVerticalPixels=XXX
请注意, maxHorizontalPixels 的默认值为 640 , maxVerticalPixels 的默认值为 480 ,因此chaning这些值可以帮助您解决问题。
答案 3 :(得分:1)
我遇到了类似的问题,OS X下的错误消息略有不同。我发现一切都还可以,但是当相机花费太多时间进行初始化时,模拟器会崩溃。
我是我的情况我最终关闭了其他应用程序并且它有效。您可能希望在性能更高的计算机上进行测试。
答案 4 :(得分:0)
即使按照此处的说明在AVD中进行设置,我也无法使相机在仿真器(在Linux下)下工作。我注意到它要使用的摄像机是/ dev / video0,但我想要的摄像机是/ dev / video3,这对我有所帮助。快速交换...
mv /dev/video0 /dev/video4
mv /dev/video3 /dev/video0
...成功了