Android模拟器在启动设备时禁用麦克风

fen*_*rdt 14 android android-emulator android-studio

启动模拟器时如何禁用(虚拟)麦克风?

情况
启动 Android Studio 库存模拟器设备时,麦克风始终处于启用状态并正在监听。

为什么我们需要这个修复

  • 方便,许多用户都有麦克风耳机,当麦克风启用时,他们会失去降噪和/或立体声。这可能非常烦人,迫使用户断开将模拟器音频+声音交换到另一个麦克风/扬声器输入/输出的设备。
  • 安全风险,麦克风正在主动监听。数据会去任何地方吗?谁知道...这对于任何组织来说都是不必要的安全风险,IE 开发人员正在使用使用麦克风和监听的开放模拟器进行(缩放、团队、会议)通话。

可能的解决方案(基于实用性)

  1. 标记以禁用虚拟音频设备(即 Mac 的扬声器或带麦克风的附加耳机)。我见过 0 个关于这样的标志的文档。
  2. 提供给模拟器以禁用所有音频输入的标志(参见答案 1)。TLDR 添加标志-no-audio
  3. 将 android studio 模拟器(或 Mac 的麦克风音频输入)路由到未监听的虚拟设备。或者将默认操作系统麦克风输入音量设置为 0。这可以通过 macOSX Automator 完成
  4. 将 adb 模拟器路由到 Mac 的内部麦克风而不是当前麦克风,以避免触发耳机麦克风设置。

首选解决方案

  • 启动模拟器时麦克风音频输入被禁用
  • Android 设备音频输出保留并使用计算机的默认扬声器
  • 计算机的默认麦克风(根本)不会被触发,以避免导致立体声 -> 单声道交换或噪声消除损坏。

系统信息:

  • 安卓模拟器:31.2.10.0
  • macOS 12.3.1
  • 耳机经测试存在以下问题:
    • 博士 NC 700
    • Bose QC 系列
    • 索尼 WF-1000XM4
    • 索尼WH-1000XM3
    • 任何带有麦克风连接宏的耳机,可以对扬声器(如通话)或输入音频(如立体声 -> 单声道)执行某些操作。

art*_*rvt 27

您可以从这里尝试该方法:

当我启动 Android 模拟器时,Mac 桌面上的音频停止 它运行良好。

从模拟器中将以下值设置到 config.ini 中。它永远不会再打扰你。

hw.audioInput=no
hw.audioOutput=no
Run Code Online (Sandbox Code Playgroud)


fen*_*rdt 5

基于模拟器可选参数的部分解决方案,该参数禁用已启动模拟器的所有音频输入/输出。

运行emulator -help-all命令-no-audio-noaudio可以通过。

这些命令是相同的,并且禁用所有音频,因此模拟器中没有麦克风或音频输出。

命令示例

emulator -avd <name> -no-audio

优点:运行上述命令,启动模拟器并禁用麦克风。耳机和 microsnitch 等应用程序不会检测麦克风活动。

缺点:单击 UI 或通过模拟器播放音频不会通过机器(或耳机)扬声器播放音频。