使用-noaudio选项运行Android模拟器将返回"qemu-system-i386.exe:-audio:invalid option"

Tek*_*ekk 10 audio sdk android android-virtual-device android-emulator

  1. 我正在运行Windows 10,64位Android Studio 2.2.2.从Android SDK的AVD Manager创建AVD时,我没有看到完成禁用音频(输入和输出)的选项.我正在使用Android SDK,其中包含Android Tools 25.2.2版本.在旧的AVD管理器中,我记得存在完全禁用AVD音频的选项.
  2. 当我想创建一个批处理脚本时,要运行-noaudio选项,如Google官方控制模拟器中的命令行页面所述,我正在运行命令emulator.exe -avd Nexus_4 -noaudio,但它会抛出错误

qemu-system-i386.exe: -audio: invalid option

  1. Android Emulator对话框打开,进度条不确定,AVD根本无法启动.永远保持加载.

任何帮助表示赞赏.

Daw*_*ozd 12

我在Linux上测试了这个.(对于windows checkout评论或@Tekk回答)
如果你不想要音频,只需使用:

export QEMU_AUDIO_DRV=none && emulator -avd Nexus_4
Run Code Online (Sandbox Code Playgroud)

TL; DR

从这里引用

基于一些挖掘,看起来QEMU2取消了完全禁用音频的能力 - 您可以指定音频通过哪个声卡,但不能完全关闭它."-audio"标志被替换为"-soundhw",它允许我们指定使用哪个声卡.

QEMU1(使用"-engine classic"模拟器命令行标志)在传递"-noaudio"时起作用,但是将"-soundhw none"传递给QEMU2也会失败.

解:

发布有关模拟音频设备的信息

在Linux上如果我想要声音我使用:

export QEMU_AUDIO_DRV=pa && emulator.orig -avd Nexus_S_api_23
Run Code Online (Sandbox Code Playgroud)

它工作正常.此外,我没有100%的CPU使用率

我的片段:

#!/bin/bash
# http://stackoverflow.com/a/35822173/1052261
# http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in

SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
  DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
  SOURCE="$(readlink "$SOURCE")"
  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"

#echo "DIR is '$DIR'"
#If you want audio pass QEMU_AUDIO_DRV=pa -> https://www.wagner.pp.ru/fossil/vws/wiki?name=QEMU+audio
export QEMU_AUDIO_DRV=none && $DIR/emulator.orig -use-system-libs "$@" -qemu -m 512 -enable-kvm
Run Code Online (Sandbox Code Playgroud)

只需替换Android-sdk/tools/emulatorAndroid-sdk/tools/emulator.orig Then ,然后使用上面的源创建脚本Android-sdk/tools/emulator(允许执行).

记得有时当android sdk升级它会删除这个脚本;)