2016-10-26 119 views
8
  1. 我正在運行Windows 10,64位Android Studio 2.2.2。當從Android SDK的AVD管理器創建AVD時,我看不到完全禁用音頻(輸入和輸出)的選項。我使用的Android SDK包含Android Tools 25.2.2)。在舊的AVD管理器中,我記得在AVD上完全禁用音頻的選項存在。
  2. 當我想創建一個批處理腳本,與-noaudio選項運行,如谷歌的官方Control the Emulator from the Command Line頁提到的,我運行命令emulator.exe -avd Nexus_4 -noaudio,但它會拋出錯誤

qemu-system-i386.exe: -audio: invalid option使用-noaudio選項運行Android模擬器會返回「qemu-system-i386.exe:-audio:invalid option」

  1. Android模擬器對話框打開,具有不確定的進度條,並且AVD根本不啓動。永久保持加載。

任何幫助表示讚賞。

回答

8

我已經在Linux上測試過了。 (對於Windows結賬意見或@Tekk答案)
如果你不想音頻簡單地使用:

export QEMU_AUDIO_DRV=none && emulator -avd Nexus_4 

TL; DR

Quote from here

基於一些周圍挖掘,它看起來像QEMU2刪除了完全禁用音頻的能力 - 您可以指定音頻通過哪個聲卡,但無法完全關閉它。 「-audio」標誌被替換爲「-soundhw」,它讓我們指定要使用哪個聲卡。

當「-noaudio」通過時,QEMU1(使用「引擎經典」模擬器命令行標誌)可以工作,但將「-soundhw none」傳遞給QEMU2也會失敗。

解決方案:

Post about emulated audio devices

在Linux上,如果我想我的聲音使用:

export QEMU_AUDIO_DRV=pa && emulator.orig -avd Nexus_S_api_23 

它工作正常。此外,我不具有100%的CPU使用率

My snippet

#!/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 "[email protected]" -qemu -m 512 -enable-kvm 

只需更換Android-sdk/tools/emulatorAndroid-sdk/tools/emulator.orig 然後與上述源在Android-sdk/tools/emulator創建腳本(允許執行)。

記住有時當Android SDK中會升級它會刪除這個腳本;)

+1

感謝您的回答!我不得不在Windows 10上使用'set'命令,'&&'也沒有工作,所以我只運行了這兩個命令**'set QEMU_AUDIO_DRV = none',然後是'emulator - avd Nexus_4' **並且可以確認聲音現在在QEMU中真正禁用。在仿真器閒置幾個小時後,40-100%CPU耗盡等問題也沒有了。 – Tekk

+0

@Tekk所以也許接受答案:)? Thx :) –

+1

對不起,經過很長一段時間我已經回到這個,並確定我已經接受你的答案!非常感謝,確實非常有幫助。 – Tekk

1

由於@Dawid德羅茲德的回答,我創建了一個Windows批處理腳本,將運行AVD無聲音輸入/輸出。給腳本一個AVD名稱的參數。

訣竅是在執行AVD之前運行set QEMU_AUDIO_DRV=none

@echo off 
if "%1"=="" goto usage 
set QEMU_AUDIO_DRV=none 
@echo Running AVD "%1" without sound... 
@echo. 
%ANDROID_HOME%\tools\emulator.exe -avd %1 
goto :eof 

:usage 
@echo. 
@echo ----------------------------------- 
@echo Usage: %0 ^<avd-name^> 
@echo ----------------------------------- 
@echo. 
@timeout 3 >0 
exit /B 1