Cuando inicio Android Emulator, el audio en el escritorio de mi Mac se detiene

6 minutos de lectura

Cuando inicio Android Emulator, el audio en el escritorio de mi Mac se detiene. Comienza de nuevo cuando cierro el emulador.

Avatar de usuario de Paweł Kanarek
Paweł Kanarek

Encontré una forma más fácil que la respuesta aceptada de @Ivo Stoyanov para resolver esto. Simplemente abra el archivo de configuración del emulador (para mi mac es /Users/{myname}/.android/avd/{emulator_name}/config.ini y establecer

hw.audioInput=no
hw.audioOutput=no

Pantalla de código de estudio visual

Si no funciona, debe “Borrar datos” y “Arranque en frío ahora” en el Administrador de dispositivos virtuales de Android
pantalla del administrador de dispositivos virtuales de Android

  • No está mal, pero con esta solución tienes que editar la configuración de cada emulador que crees.

    – Ivo Stoyanov

    16 de julio de 2021 a las 14:24

  • Sí, solo quería compartir 🙂 También con eso puedo controlar qué emulador puede usar audio y cuál no. Y crear nuevos emuladores no es una actividad tan frecuente.

    – Pawel Kanarek

    16 de julio de 2021 a las 15:51

  • Creo que esta es la mejor solución porque no establecer audio de forma permanente para todos los emuladores causará más problemas cuando tengamos que probar el audio. Entonces, si está trabajando con audio, simplemente cree dos emuladores, con y sin salida de audio. Utilice el que satisfaga sus necesidades durante el desarrollo.

    – Chetán Goyal

    19 de febrero a las 21:31

  • Asegúrese de que está editando el correcto .ini expediente. debería ser el config.iniNO <emulator_name>.ini

    – muya_

    4 de agosto a las 4:24

Avatar de usuario de Ivo Stoyanov
Ivo Stoyanov

Cuando el emulador se inicia con el audio habilitado, a veces anula el canal de audio de la máquina Mac. Esto sucede incluso si deshabilita el acceso al micrófono para el estudio de Android en la configuración de Seguridad. Para solucionar el problema, debe iniciar el emulador con el audio deshabilitado.

Hay dos opciones para iniciar el emulador con el audio deshabilitado:

YO. Inicie el emulador desde la consola:

emulator -avd Pixel_2_API_27 -qemu -no-audio

II. Si desea iniciar el emulador con audio deshabilitado directamente desde el estudio de Android, debe reemplazar el emulator archivo con un script que se ejecutará emulator con parámetros adicionales:

Android Studio por defecto usa el binario $ANDROID_SDK/emulator/emulatorque se encuentra en: ~/Library/Android/sdk/emulator/

Tienes que hacer lo siguiente:

  1. Renombrar el emulator binario a emulator-original.

  2. Cree un archivo de texto de script bash con el nombre emulator eso contiene:

#!/bin/bash    
~/Library/Android/sdk/emulator/emulator-original [email protected] -qemu -no-audio
  1. Establezca los permisos de script recién creados con chmod +x emulator

Ahora, Android Studio ejecutará su secuencia de comandos que ejecutará el binario original con los parámetros adicionales para deshabilitar el audio del emulador.

NB Felicitaciones por la solución de script a MartinCR que lo propuso aquí.

  • Perfecto… ¡Funcionó! Gracias

    – Alan Silva

    22 mayo 2021 a las 17:46

  • Esta es una mejor solución: stackoverflow.com/a/64696876/1942551

    – Karlingen

    23 de diciembre de 2021 a las 9:07

  • stackoverflow.com/a/64696876/1942551 no funciona en Mac OS. No puede establecer ‘studio.emu.params’ de forma permanente.

    – Ivo Stoyanov

    23 de diciembre de 2021 a las 9:57


  • Recibo el error “Se requiere Intel HAXM para ejecutar este AVD. No hay ningún emulador instalado” cuando realizo los pasos anteriores. ¿Alguna sugerencia?

    – Sunkas

    9 de febrero a las 14:47

  • Para la primera opción, el indicador -qemu en realidad parece innecesario, incluido -no-audio sin -qemu funciona para mí

    – konnovdev

    15 de mayo a las 13:19

Avatar de usuario de Shredder2794
Trituradora2794

Para desarrollar la respuesta de @paweł-kanarek, aquí hay un pequeño script que recorre todos los emuladores de Android en su máquina y agrega

hw.audioInput = no
hw.audioOutput = no

al final del archivo (o lo reemplaza si ya tiene estas opciones especificadas).

#!/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

Para ejecutar esto, simplemente agregue este código a un script bash local (nombré al mío ‘disable_emulator_sound.sh’). Luego, hazlo ejecutable con el comando chmod +x disable_emulator_sound.sh y ejecutarlo con ./disable_emulator_sound.sh.

Nota: como se mencionó en la respuesta original, después de realizar este cambio, si no funciona, es posible que deba ingresar al menú de opciones del emulador y ejecutar ‘Borrar datos’ y luego ejecutar ‘Arranque en frío ahora’.

Avatar de usuario de Morteza Rastgoo
Morteza Rastgoo

Residencia en joaquínpublicación de:

Si tiene algunos auriculares Bluetooth y nota un silbido extraño mientras se ejecuta el emulador, puede resultarle útil agregar el -noaudio

Tener un solución permanente para afectar a todos sus dispositivos virtuales Haz lo siguiente:

Crear un .plist archivo, por ejemplo studio-environments.plist en la carpeta ~/Library/LaunchAgents/ con el siguiente contenido:

<?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>

Para cargar estos cambios directamente (por ejemplo, para aplicar cambios sin reiniciar su Mac)

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

Extras:

Si ejecuta el comando mientras ya está cargado, obtendrá un mensaje de error como este

Load failed: 5: Input/output error

Tienes que descargarlo antes con

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

Puede verificar sus cambios con este comando:

launchctl getenv studio.emu.params

Nota: Ya no escuchará ningún sonido del emulador, pero el silbido también desaparecerá.

También puede retirar el acceso al micrófono para Android Studio en la configuración del sistema MacOS en “Seguridad y privacidad”. (Aunque no sé qué tan bien/si funciona, ya que opté por el enfoque config.ini).

Paso a paso: Enlace a una mejor explicación con imágenes.

  • Vaya a “Preferencias del sistema” de MacOS > “Seguridad y privacidad” > Micrófono.
  • Haga clic en el icono de candado en la parte inferior izquierda para habilitar la edición.
  • Luego desmarque la marca de verificación en Android Studio en la lista de aplicaciones a la derecha.

Felicitaciones a Matt McKenna que compartió esto en su blog. Escribió sobre la solución y los antecedentes aquí:
https://blog.mmckenna.me/android-emulators-vs-bluetooth-headphones

  • Desafortunadamente, eso no funcionó para mí.

    – Ivo Stoyanov

    29 de diciembre de 2021 a las 11:43

Avatar de usuario de Mohammed Salim Al-Othman
Mohamed Salim Al-Othman

La mejor solución en Mac OS es:
Preferencias del sistema–> Seguridad y privacidad–> Micrófono –> desmarque Android Studio
Entonces disfruta que el sonido ha vuelto 🙂

  • Desafortunadamente, eso no funcionó para mí.

    – Ivo Stoyanov

    29 de diciembre de 2021 a las 11:43

¿Ha sido útil esta solución?