在Android模拟器中使用相机

80
我希望在Android模拟器中使用网络摄像头模拟摄像头。基本上,我只需要使用模拟器中的相机拍照(不需要实时预览,如果这样做更容易也可以)。我按照这里的教程进行操作,这是我能找到的唯一一个接近我的要求的教程。但是,该教程中使用的许多库(如android.hardware.CameraDevice)在当前SDK中不可用,并被新库(如android.hardware.camera)替换了。如果有关于如何在目前的SDK(2.1或2.2)中完成此操作的任何帮助,将非常感激。

我认为这个答案会对你有所帮助 https://dev59.com/LGYr5IYBdhLWcg3wQYJa#71319601 - Rasoul Miri
9个回答

146
在您的AVD高级设置中,您应该能够将前置和后置摄像头设置为Webcam()Emulated

这里输入图片描述


28
请记住,前置和后置相机不能相同。 - NicoJuicy
4
点击“高级”后,我需要向下滚动才能找到这些界面元素,它们被隐藏了。 - Jeff Allen
1
有两个“高级设置”。不是模拟器运行后的那个。在设备管理器中,单击设备旁边的铅笔图标,显示高级设置。 - oliversisson

12

更新:ICS模拟器支持相机。


3
拍照功能可以使用,但无法进行实时预览(Camera.open()无法正常工作)。 - Nux

5

为了进一步阐述已经说过的内容:

如上所述,当前SDK原生支持Webcam,但仅限于较新的Android版本(4.0及以上)

在有摄像头的情况下,网络摄像头检测是自动进行的。在4.0.3中,默认使用前置摄像头,因此许多应用程序(特别是2.3之前的应用程序,只能获取默认相机,即后置相机)仍然会显示旧的方格图标。

我认为以下帖子提供了更详细的信息:Camera on Android Eclipse emulator:

至少,在SDK工具的发布说明中除了简短而不详细的陈述外,这是我能找到的最多的信息。


4

如果你正在使用命令行工具或者想要直接编辑你的config.ini文件,你有以下几个选项:

选项1:使用命令行选项

emulator -help | grep cam # => shows items such as -camera-back
emulator -help-camera-back # => show supported values for this option
emulator -avd $MY_AVD -camera-back virtualscene # Example invocation

如果你想使用实际的相机而非模拟相机,选项的值将为webcam${N}。你怎么知道${N}应该是什么?emulator -webcam-list会列出并描述计算机上可用的摄像头。
选项2:编辑配置文件
使用我们上面学到的合法值,编辑文件~/.android/avd/${MY_AVD}/config.ini并添加一行(我会使用virtualscene作为我的选择值):
hw.camera.back = virtualscene

2

更新@param的答案。

ICS模拟器支持相机。

我发现简单的Android照片捕捉,它支持Android模拟器中的网络摄像头。


0

0

看起来不像,但Android将网络摄像头识别为设备。每次我运行模拟器时,我的网络摄像头的活动指示灯都会亮起来。


0

如果你只需要在响应相机请求时显示一张图片,可以使用image-to-camera

只需下载、构建、安装,并将所选的图像复制到设备上,就可以通过该应用程序选择它,这是内置相机的替代品。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接