当我启动 Android 模拟器时,Mac 桌面上的音频停止
When I start Android Emulator, the audio on my Mac desktop stops
当我启动 Android 模拟器时,Mac 桌面上的音频停止了。当我关闭模拟器时它又开始了。
当模拟器以启用的音频启动时,有时它会覆盖 Mac 机器的音频通道。即使您在安全设置中禁用 Android 工作室的麦克风访问权限,也会发生这种情况。要解决此问题,您应该在禁用音频的情况下启动模拟器。
有两个选项可以在禁用音频的情况下启动模拟器:
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/
您必须执行以下操作:
将 emulator
二进制文件重命名为 emulator-original
。
创建一个名为 emulator
的 bash 脚本文本文件,其中包含:
#!/bin/bash
~/Library/Android/sdk/emulator/emulator-original $@ -qemu -no-audio
- 使用
chmod +x emulator
设置新创建的脚本权限
现在,Android Studio 将 运行 您的脚本,该脚本将 运行 带有附加参数的原始二进制文件以禁用模拟器的音频。
N.B。感谢 MartinCR who proposed it here.
的脚本解决方案
我找到了比@Ivo Stoyanov 接受的答案更简单的方法来解决这个问题。只需打开模拟器配置文件(对于我的 mac 它是 /Users/{myname}/.android/avd/{emulator_name}/config.ini
并设置
hw.audioInput=no
hw.audioOutput=no
如果它不起作用,那么您应该在 Android 虚拟设备管理器中“擦除数据”和“立即冷启动”
您还可以在“安全与隐私”的 MacOS 系统设置中撤销 Android Studio 的麦克风访问权限。 (虽然我不知道 well/if 它是如何工作的,因为我选择了 config.ini 方法。)
循序渐进:Link to a better explaination with pictures
- 转到 MacOS“系统偏好设置”>“安全与隐私”> 麦克风。
- 单击左下角的锁定图标以启用编辑。
- 然后在右侧的应用程序列表中取消勾选 Android Studio。
感谢 Matt McKenna 在他的博客上分享了这篇文章。他在这里写下了解决方案和背景:
https://blog.mmckenna.me/android-emulators-vs-bluetooth-headphones
基于Joachim的post:
If you have some Bluetooth headphones and notice a strange hissing
sounds while the emulator is running, you might find it useful to add
the -noaudio
要获得影响所有虚拟设备的永久修复,请执行以下操作:
创建一个 .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
注意:你不会再听到模拟器发出任何声音,但嘶嘶声也会消失
为了构建@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
.
运行 使其可执行
注意:如原始答案中所述,进行此更改后,如果它不起作用,您可能必须进入模拟器选项菜单,然后 运行 'Wipe Data' 然后 运行 'Cold Boot Now'.
Mac Os 上的最佳解决方案是:
系统偏好设置--> 安全和隐私--> 麦克风--> 取消选中 Android Studio
然后享受那个声音回来了:)
当我启动 Android 模拟器时,Mac 桌面上的音频停止了。当我关闭模拟器时它又开始了。
当模拟器以启用的音频启动时,有时它会覆盖 Mac 机器的音频通道。即使您在安全设置中禁用 Android 工作室的麦克风访问权限,也会发生这种情况。要解决此问题,您应该在禁用音频的情况下启动模拟器。
有两个选项可以在禁用音频的情况下启动模拟器:
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/
您必须执行以下操作:
将
emulator
二进制文件重命名为emulator-original
。创建一个名为
emulator
的 bash 脚本文本文件,其中包含:
#!/bin/bash ~/Library/Android/sdk/emulator/emulator-original $@ -qemu -no-audio
- 使用
chmod +x emulator
设置新创建的脚本权限
现在,Android Studio 将 运行 您的脚本,该脚本将 运行 带有附加参数的原始二进制文件以禁用模拟器的音频。
N.B。感谢 MartinCR who proposed it here.
的脚本解决方案我找到了比@Ivo Stoyanov 接受的答案更简单的方法来解决这个问题。只需打开模拟器配置文件(对于我的 mac 它是 /Users/{myname}/.android/avd/{emulator_name}/config.ini
并设置
hw.audioInput=no
hw.audioOutput=no
如果它不起作用,那么您应该在 Android 虚拟设备管理器中“擦除数据”和“立即冷启动”
您还可以在“安全与隐私”的 MacOS 系统设置中撤销 Android Studio 的麦克风访问权限。 (虽然我不知道 well/if 它是如何工作的,因为我选择了 config.ini 方法。)
循序渐进:Link to a better explaination with pictures
- 转到 MacOS“系统偏好设置”>“安全与隐私”> 麦克风。
- 单击左下角的锁定图标以启用编辑。
- 然后在右侧的应用程序列表中取消勾选 Android Studio。
感谢 Matt McKenna 在他的博客上分享了这篇文章。他在这里写下了解决方案和背景: https://blog.mmckenna.me/android-emulators-vs-bluetooth-headphones
基于Joachim的post:
If you have some Bluetooth headphones and notice a strange hissing sounds while the emulator is running, you might find it useful to add the -noaudio
要获得影响所有虚拟设备的永久修复,请执行以下操作:
创建一个 .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
注意:你不会再听到模拟器发出任何声音,但嘶嘶声也会消失
为了构建@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
.
注意:如原始答案中所述,进行此更改后,如果它不起作用,您可能必须进入模拟器选项菜单,然后 运行 'Wipe Data' 然后 运行 'Cold Boot Now'.
Mac Os 上的最佳解决方案是: 系统偏好设置--> 安全和隐私--> 麦克风--> 取消选中 Android Studio 然后享受那个声音回来了:)