安卓模拟器相机自定义图片

73

有没有人知道当模拟器相机启动时是否可以打开一些个人图片?

我有一个基于图像分析的应用程序,我希望当我点击相机按钮时,相机不会打开默认的Android模拟器移动图像,而是打开我设置为默认图像的某个图像。因此,当我选择拍照时,它将仅显示该图像,并且当我拍摄照片时,该图像将保存到图库中,而不是Android默认图像。

7个回答

139
在{{工具}}>{{AVD管理器}}下,选择“铅笔”图标进入“虚拟设备配置”。{{显示高级设置}}>{{相机}}将为您提供使用模拟或设备的选项:

设备 - 使用主机计算机网络摄像头或内置摄像头

Virtual Device Camera Configuration

如果你只需要将静态图像放入相机中,从Android Studio 3.2开始,你可以将静态图像放入虚拟场景中:

Virtual Scene Demo

正如在 Android 开发者博客的 这篇文章 中所讨论的那样。请注意,您需要将相机位置移动到餐厅才能查看您的图像(转身并使用 Alt-w 向前移动)。


2
这里有一个比博客链接更直接的链接,可以访问虚拟场景变化文档。此外,我不知道如何访问“扩展控件”以找到“相机”链接。我在这里找到了这些说明: “要打开扩展控件窗口,请单击模拟器面板中的“更多”。" - gabe
3
我制作了一个详尽的步骤清单 https://gist.github.com/gabrieljoelc/df8256b896cac46bd51fd2deb412da5f - gabe
2
这个答案教会了我如何使用它。谢谢 Dale!! - Yakob Ubaidi
如果您无法进入“高级设置”,请尝试以下方法。工具 > AVD 管理器。单击您感兴趣的 AVD 相关的“操作”列中的向下箭头,然后从结果菜单中选择“编辑”。单击“显示高级设置”按钮。我认为这就是早期指令试图引导您到达的地方。此方法适用于 2020.3.1 补丁2。 - glaucon
第一个选项可行(笔记本摄像头),而第二个不行。 - CoolMind
有没有办法自定义虚拟场景的几何形状?我想在我创建的3D环境中进行增强现实测试。 - Emil S.

34

终于完成了!

  1. 将内容追加到文件~/Android/Sdk/emulator/resources/Toren1BD.posters中
poster custom
size 2 2
position 0 0 -1.8
rotation 0 0 0
default custom.png
  1. 将'custom.png'放在~/Android/Sdk/emulator/resources/中
  2. 重新启动! emulator @Phone -no-snapshot -no-boot-anim (将'Phone'替换为您的avd的名称!(参见:emulator -list-avds)
  3. 获得利润!

现在,您的相机默认位置前方就有一个纹理。

示例视图


这对于模拟器上的标准相机应用程序很好用,但是我有一个问题,我的自己的使用Camerax的应用程序看不到custom.png。我只得到默认环境。@RedCore你有什么建议,为什么同一模拟器上的不同应用程序可能会获得不同的环境? - cguenther
这正是我在寻找的,感谢您在这里发布解决方案。我们在iOS模拟器中有类似的东西吗? - Dhiman
2
谢谢,这对我很有效!我认为这应该是被采纳的答案。 - Chen Li Yong
备忘录:这些是使用WhatsApp扫描QR码的良好数值:大小 1 1 位置 0.1 -0.1 -1.9 - masewo

9

2022年更新:

使用OBS的最佳方法是创建虚拟摄像头,您可以播放视频或显示图片。

步骤1:此网站下载OBS Studio,并创建一个虚拟摄像头,添加要播放的视频。

enter image description here

步骤2: 更改Android AVD中的配置,将前置和后置摄像头更改为webcam0。

enter image description here


3
这对我不起作用。如果我将其中一个相机设置为Webcam0,那么该相机将变得无法使用(操作系统完全无法识别它的存在)。 - Gradyn Wursten
您可以查看此文档 https://obsproject.com/help - Rasoul Miri
@GradynWursten 我也遇到了同样的问题,但是这个答案对我很有效:https://askubuntu.com/a/1141398/400932 - Laerte
1
@Gradyn Wursten 请尝试在OBS设置中使用低分辨率或旋转预览。尝试右键单击预览,然后设置: 预览缩放>画布 变换>逆时针旋转90度 - MeLean

4
在Mac OS上,请确保模拟器以独立模式运行。
您可以在以下位置检查此设置:首选项 > 工具 > 模拟器,如下图所示(在工具窗口中启动应该未被勾选):

enter image description here

您可以启动模拟器,在“相机扩展控制”下上传您想要的图像,例如我的情况是一个二维码。

enter image description here

最后,使用Mac上的Option键/Windows上的Alt键 + QWEASD + 鼠标,您可以在房间中导航相机并找到您的图像(在我的情况下是QR码),如下所示:

enter image description here


1

我在过去的一天里一直在解决一个问题,最终找到了一个解决方案,可以帮助其他人。(在MacOSX上,使用Android Studio模拟器)

问题:尝试将OBS Studio用作模拟器的虚拟相机时,模拟器无法识别OBS虚拟相机,在设备管理器相机设置中唯一的选项是内置的webcam0并且安卓模拟器上的相机应用程序无法识别虚拟相机设备。

解决方案

  1. 安装OBS Studio并运行它,第一次启动虚拟摄像头时,这将自动在/Library/CoreMediaIO/Plug-Ins/DAL安装CoreMediaIO DAL插件并创建虚拟网络摄像头设备。

  2. 进入Android Studio安装的模拟器文件夹cd ~/Library/Android/sdk/emulator,使用命令./emulator -webcam-list检查可用的网络摄像头列表,您应该看到两个可用的网络摄像头;内置摄像头webcam0和obs虚拟设备webcam1

  3. 通过打开终端并运行nano ~/.android/avd/{AVD NAME}/config.ini编辑您的avd配置文件以使用webcam1,向下滚动并修改hw.camera.back = webcam1一行,按Ctrl+O写出并按Ctrl+X退出nano。

  4. 确保您的OBS虚拟设备在OBS Studio程序中已启动。

  5. 通过指定虚拟相机来通过命令行运行模拟器,进入模拟器文件夹cd ~/Library/Android/sdk/emulator并运行./emulator -avd {AVD NAME} -camera-back webcam1

  6. 现在设备将启动,当您打开相机应用程序时,您应该看到OBS虚拟设备输入。如果没有,请按以下步骤操作,因为这是我的主要问题。

如果相机应用程序显示错误,并且即使按照上述步骤操作后仍无法看到OBS虚拟设备,则对我有效的解决方案是重置相机访问权限。对我来说,模拟器以前曾从系统请求访问相机,而内置的webcam0是avd的相机源。模拟器需要许可才能使用系统中的虚拟设备webcam1,但由于已经获得了内置相机webcam0的许可,因此不会再次请求。这导致在模拟器中打开相机应用程序时出现错误,因为它无法访问源。

要解决此问题,您必须关闭模拟器和Android Studio,并运行tccutil reset Camera(请注意,这将重置所有应用程序的相机权限,您可以通过运行tccutil reset Camera com.WHATEVERBUNDLE.YOURAPPID仅重置Android Studio /特定应用程序的权限)。

重置相机权限后,再次使用上述第4步启动模拟器,打开相机应用程序时,您应该会收到Mac系统的提示,允许其访问Android Studio的相机,然后您应该会看到预期的OBS虚拟相机输入。

注意:我发现在通过命令行运行模拟器一次之后,您可以正常运行模拟器,并且相机设置将持续存在。

-1

看起来唯一的解决方案是使用远程摄像头。

这是一种方法:http://www.tomgibara.com/android/camera-source

虽然不是我正在寻找的东西,但我认为它可以用于测试。如果将条形码放在相机前正确位置,甚至可能会与此配合使用。


你可以使用Android 3D图库源代码来实现这个功能,在其中你可以将相机中的常量图像设置进去。 - itsrajesh4uguys
1
嗨。如果您能够发布新的答案并稍微解释一下,我会接受您的答案。我已经搜索了一下,但没有看到一些教程。谢谢! - Cristiano
通常情况下,我的应用程序没有变化,当我使用模拟器进入相机时,它会显示默认的客厅,里面有猫雕像和一个带有移动棋盘的电视。要实现这个建议,我需要改变我的应用程序而不是配置模拟器或Android Studio吗? - Dale

-1

从以下网址下载源代码。它可以在仿真器中作为另一个画廊工作。 在传递拍摄照片的意图时,请选择此画廊。它看起来像三星手机的3D画廊... 它将返回默认图像... 在仿真器中。还有一件事,它只能在3.0版本之后正常工作。

https://github.com/c-jiang/Gallery3D-Mod


12
过时:九年旧 - Dale

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