当我启动 Android 模拟器时,Mac 桌面上的音频停止

问题描述 投票:0回答:6

当我启动 Android 模拟器时,Mac 桌面上的音频停止。当我关闭模拟器时它会再次开始。

android macos android-studio android-emulator
6个回答
189
投票

我找到了比 @Ivo Stoyanov 接受的答案更简单的方法来解决这个问题。只需打开模拟器配置文件(对于我的 mac,它是

~/.android/avd/{emulator_name}/config.ini
并设置

hw.audioInput=no
hw.audioOutput=no

如果它不起作用,那么您应该在 Android 虚拟设备管理器中“擦除数据”和“立即冷启动”


66
投票

当模拟器以启用的音频启动时,有时它会覆盖 Mac 计算机的音频通道。即使您在安全设置中禁用了对 Android studio 麦克风的访问,也会发生这种情况。要解决此问题,您应该在禁用音频的情况下启动模拟器。

有两个选项可以在禁用音频的情况下启动模拟器:

I. 从控制台启动模拟器:

emulator -avd Pixel_2_API_27 -qemu -no-audio

II. 如果您想直接从 Android studio 启动禁用音频的模拟器,则应将

emulator
文件替换为将运行
emulator
并附加参数的脚本:

Android Studio 默认使用二进制文件

$ANDROID_SDK/emulator/emulator
,它位于:
~/Library/Android/sdk/emulator/

您必须执行以下操作:

  1. emulator
    二进制文件重命名为
    emulator-original

  2. 创建一个名为

    emulator
    的 bash 脚本文本文件,其中包含:

#!/bin/bash    
~/Library/Android/sdk/emulator/emulator-original $@ -qemu -no-audio
  1. 使用
    chmod +x emulator
  2. 设置新创建的脚本权限

现在,Android Studio 将运行您的脚本,该脚本将运行带有附加参数的原始二进制文件以禁用模拟器的音频。

注意感谢 MartinCR 提出的脚本解决方案here


23
投票

为了构建 @paweł-kanarek 答案,这里有一个小脚本,它循环遍历您计算机上的所有 Android 模拟器并添加

hw.audioInput = no
hw.audioOutput = no

在文件末尾(或者如果您已经指定了这些选项则替换它)。

#!/bin/bash
find ~/.android/avd -name "config.ini" | while read line
do
   awk '!/audio/' $line > tmp
   rm $line
   mv tmp $line
   echo "hw.audioInput = no" >> $line 
   echo "hw.audioOutput = no" >> $line 
done

要运行它,只需将此代码添加到本地 bash 脚本中(我将其命名为“disable_emulator_sound.sh”)。然后,使用命令

chmod +x disable_emulator_sound.sh
使其可执行,并使用
./disable_emulator_sound.sh
运行它。

注意:如原始答案中所述,进行此更改后,如果它不起作用,您可能必须进入模拟器选项菜单并运行“擦除数据”,然后运行“立即冷启动”。


10
投票

基于Joachim的帖子:

如果您有蓝牙耳机并注意到奇怪的嘶嘶声 模拟器运行时发出声音,您可能会发现添加 -无音频

要进行永久修复以影响所有虚拟设备,请执行以下操作:

创建一个

.plist
文件,例如
studio-environments.plist
在文件夹
~/Library/LaunchAgents/
中,包含以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>setenv.studio.emu.params</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/launchctl</string>
        <string>setenv</string>
        <string>studio.emu.params</string>
        <string>-writable-system,-noaudio</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

直接加载这些更改(例如,无需重新启动 Mac 即可应用更改)

launchctl load ~/Library/LaunchAgents/studio-environments.plist

额外:

如果在命令已加载时运行该命令,您将收到如下错误消息

Load failed: 5: Input/output error

您必须先卸载它

launchctl unload ~/Library/LaunchAgents/studio-environments.plist

您可以使用此命令检查您的更改:

launchctl getenv studio.emu.params

注意:您将不会再听到模拟器发出任何声音,但嘶嘶声也会消失


5
投票

您还可以在 MacOS 系统设置的“安全与隐私”中撤回 Android Studio 的麦克风访问权限。 (虽然我不知道它的效果如何/是否有效,因为我采用了 config.ini 方法。)

一步一步:链接到带有图片的更好解释

  • 转到 MacOS“系统偏好设置”>“安全和隐私”>麦克风。
  • 单击左下角的锁定图标以启用编辑。
  • 然后在右侧应用程序列表中取消选中 Android Studio 上的复选标记。

感谢马特·麦肯纳在他的博客上分享了这一点。他在这里写了解决方案和背景: https://blog.mmckenna.me/android-emulators-vs-bluetooth-headphones


-1
投票

在 Mac OS Ventura 上: 系统偏好设置 > 隐私和安全 > 麦克风 > 取消选中 Android Studio

© www.soinside.com 2019 - 2024. All rights reserved.