Ivo*_*nov 6 macos android android-emulator android-studio
当我启动 Android Emulator 时,Mac 桌面上的音频停止。当我关闭模拟器时它会再次启动。
Shr*_*794 23
为了构建 @pawe\xc5\x82-kanarek 答案,这里有一个小脚本,它循环遍历您计算机上的所有 Android 模拟器并添加
\nhw.audioInput = no\nhw.audioOutput = no\nRun Code Online (Sandbox Code Playgroud)\n在文件末尾(或者如果您已经指定了这些选项则替换它)。
\n#!/bin/bash\nfind ~/.android/avd -name "config.ini" | while read line\ndo\n awk '!/audio/' $line > tmp\n rm $line\n mv tmp $line\n echo "hw.audioInput = no" >> $line \n echo "hw.audioOutput = no" >> $line \ndone\nRun Code Online (Sandbox Code Playgroud)\n要运行它,只需将此代码添加到本地 bash 脚本中(我将其命名为“disable_emulator_sound.sh”)。然后,使用命令使其可执行chmod +x disable_emulator_sound.sh并使用 运行它./disable_emulator_sound.sh。
注意:正如原始答案中提到的,进行此更改后,如果它不起作用,您可能必须进入模拟器选项菜单并运行“擦除数据”,然后运行“立即冷启动”。
\nMor*_*goo 10
基于Joachim的帖子:
\n\n\n如果您有一些蓝牙耳机,并在模拟器运行时注意到奇怪的嘶嘶声,您可能会发现添加 -noaudio 很有用
\n
要永久修复影响所有虚拟设备,请执行以下操作:
\n.plist例如在包含以下内容的studio-environments.plist文件夹中创建一个文件:~/Library/LaunchAgents/
<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\n<plist version="1.0">\n<dict>\n <key>Label</key>\n <string>setenv.studio.emu.params</string>\n <key>ProgramArguments</key>\n <array>\n <string>/bin/launchctl</string>\n <string>setenv</string>\n <string>studio.emu.params</string>\n <string>-writable-system,-noaudio</string>\n </array>\n <key>RunAtLoad</key>\n <true/>\n</dict>\n</plist>\nRun Code Online (Sandbox Code Playgroud)\n直接加载这些更改(例如,无需重新启动 Mac 即可应用更改)
\nlaunchctl load ~/Library/LaunchAgents/studio-environments.plist\nRun Code Online (Sandbox Code Playgroud)\n附加功能:
\n如果在命令已加载时运行该命令,您将收到如下错误消息
\nLoad failed: 5: Input/output error\nRun Code Online (Sandbox Code Playgroud)\n你必须先卸载它
\nlaunchctl unload ~/Library/LaunchAgents/studio-environments.plist\nRun Code Online (Sandbox Code Playgroud)\n您可以使用以下命令检查您的更改:
\nlaunchctl getenv studio.emu.params\nRun Code Online (Sandbox Code Playgroud)\n注意:\xe2\x80\x99 不会再从模拟器中听到任何声音,但嘶嘶声也会消失
\n当模拟器以启用的音频启动时,有时它会覆盖 Mac 机器的音频通道。即使您在安全设置中禁用对 Android Studio 麦克风的访问,也会发生这种情况。要解决此问题,您应该在禁用音频的情况下启动模拟器。
有两个选项可以在禁用音频的情况下启动模拟器:
一、从控制台启动模拟器:
emulator -avd Pixel_2_API_27 -qemu -no-audio
二、如果您想直接从 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 将运行您的脚本,该脚本将运行带有附加参数的原始二进制文件以禁用模拟器的音频。
NB Kudos 为在这里提出的MartinCR的脚本解决方案点赞。
我找到了比@Ivo Stoyanov 接受的答案更简单的方法来解决这个问题。只需打开模拟器配置文件(对于我的 mac,它是/Users/{myname}/.android/avd/{emulator_name}/config.ini并设置
hw.audioInput=no
hw.audioOutput=no
Run Code Online (Sandbox Code Playgroud)
如果它不起作用,那么您应该在 Android 虚拟设备管理器中“擦除数据”和“立即冷启动”

您还可以在 MacOS 系统设置的“安全与隐私”中撤销 Android Studio 的麦克风访问权限。(虽然我不知道它的效果如何/是否有效,因为我采用了 config.ini 方法。)
一步一步:链接到带有图片的更好解释
感谢马特·麦肯纳在他的博客上分享了这一点。他在这里写了有关解决方案和背景的文章: https ://blog.mmckenna.me/android-emulators-vs-bluetooth-headphones
| 归档时间: |
|
| 查看次数: |
595 次 |
| 最近记录: |