Entre bastidores
Cómo funciona el volumen por app en Android sin root
Por el equipo de llcloud 5 min de lectura
Respuesta rápida
Android fija el volumen por tipo de sonido, como multimedia, tono de llamada y alarma, así que todas las apps que reproducen contenido multimedia comparten un mismo control. AppVolume da a cada app su propio nivel aplicando un efecto de audio a su reproducción y subiendo o bajando su ganancia. Saber qué app está sonando requiere un permiso de desarrollador que AppVolume consigue una vez con la Depuración inalámbrica y un código de vinculación de seis dígitos, sin root, sin ordenador y sin servicio de accesibilidad.
Bajas el juego y el podcast baja con él. Subes las indicaciones del mapa y la música da un salto. Cualquiera que reproduzca dos cosas a la vez en Android se topa con esto tarde o temprano. Construimos AppVolume para arreglarlo, y la forma en que funciona dice mucho de cómo trata Android el sonido. Aquí va, con palabras sencillas.
¿Por qué Android tiene un solo volumen multimedia?
Android no fija el volumen por app. Lo fija por tipo de sonido, lo que Android llama un flujo (stream). Multimedia es un flujo, y los tonos de llamada, las alarmas, las notificaciones y las llamadas tienen cada uno el suyo. Cuando pulsas las teclas de volumen mientras suena algo, mueves el flujo multimedia, y todas las apps que reproducen música, vídeo, juegos o podcasts lo comparten.
Ese diseño lo mantiene todo simple. Las teclas de volumen siempre hacen algo predecible, y una alarma nunca se queda muda porque un juego se haya bajado solo. El precio es que dos apps que reproducen contenido multimedia no pueden estar nunca a niveles distintos por sí solas. Nuestra guía para poner un volumen distinto a cada app cuenta qué ofrecen los móviles de serie, que en la mayoría es nada.
¿Cómo funcionan otras apps de volumen por app?
Muchas apps de volumen vigilan qué app está delante y cambian el único volumen multimedia cuando cambia. Abres el juego y el volumen multimedia baja. Cambias a la app de podcasts y vuelve a subir. Eso puede servir para una app cada vez, pero sigue siendo un solo control. Dos apps que suenan a la vez, como la música bajo una app de navegación, siempre comparten nivel.
Algunas de esas apps además necesitan un servicio de accesibilidad, para ver qué app está en pantalla o detectar las teclas de volumen. Es un permiso muy potente para una tarea tan pequeña.
¿Cómo da AppVolume a cada app su propio nivel?
Android tiene un conjunto de efectos de audio, como ecualizadores y procesadores de dinámica, que una app puede aplicar a una reproducción concreta, lo que Android llama una sesión de audio. Uno de ellos puede subir o bajar la ganancia del sonido que pasa por él. AppVolume aplica ese efecto a las sesiones de cada app a la que fijas un nivel, y ajusta su ganancia según tu control.
Así el cambio afecta solo al sonido de esa app, antes de que llegue al altavoz. Un podcast al 80 % y un juego al 20 % suenan de verdad a esos niveles al mismo tiempo. El mismo efecto es el que usa Pro para subir una app baja hasta el 200 % y desplazar su balance a izquierda o derecha.
AppVolume nunca escucha, graba ni envía tu audio. No vigila tu pantalla ni tus teclas de volumen, y no tiene servicio de accesibilidad. Solo sube o baja un nivel.
¿Por qué la configuración usa la Depuración inalámbrica y un código de vinculación?
Para aplicar un efecto, AppVolume primero tiene que saber qué sesiones existen y a qué app pertenece cada una. El servicio de audio del sistema guarda un informe de estado que las lista, y Android solo deja leerlo a una app con un permiso pensado para desarrolladores. Una app no puede pedir ese permiso de la forma habitual. Solo pueden concederlo la línea de comandos del móvil, el mismo nivel de acceso que tiene un ordenador con un cable de depuración, o root.
La Depuración inalámbrica da ese acceso sin ordenador. Durante la configuración la activas, y Android muestra un código de vinculación de seis dígitos. Lo escribes en AppVolume, que se vincula con el móvil en el que se ejecuta y se concede a sí mismo ese permiso con un solo comando. Esa es toda la configuración. Después no queda ningún asistente en marcha.
El permiso se mantiene tras reinicios y actualizaciones de la app, así que puedes volver a desactivar la Depuración inalámbrica y las Opciones para desarrolladores. Si ya usas Shizuku o tienes el móvil con root, AppVolume puede usarlos en su lugar. Usamos una vinculación parecida para otra tarea en Repel, que describimos en cómo el firewall de Repel funciona sin ocupar tu VPN.
¿Qué pasa detrás del control?
Un mezclador que toca el sonido de otras apps tiene que ir con cuidado, porque un error se oye alto. Por eso AppVolume sigue unas reglas:
- Desconocido no es silencio. Si no se puede leer el informe de estado, AppVolume no cambia nada. Leerlo como «no suena nada» soltaría todos los efectos y devolvería todas las apps al volumen máximo de golpe.
- Desaparecer cuenta dos veces. Una sesión tiene que faltar en dos lecturas seguidas antes de que se libere su efecto, para que un hueco breve no provoque un salto.
- Tus niveles se recuerdan. Ajusta una app una vez, incluso antes de que suene, y el nivel se aplica cada vez que arranca.
- Un reembolso no deja a nadie fuera. Una app que ya tiene un nivel siempre se puede volver a subir.
¿Cuáles son los límites?
El volumen por app mediante efectos de audio funciona con la mayoría de las apps que reproducen sonido, pero no con todas.
- Algunas apps no se pueden ajustar. Unas pocas reproducen el audio por vías a las que Android no deja llegar a ningún efecto, como algunos juegos con audio de baja latencia. AppVolume lo intenta varias veces durante un minuto y medio antes de decidir, y luego te lo dice y marca la app, en lugar de dejarte un control que no hace nada.
- Puede haber una fracción de segundo a pleno volumen. Cuando una app empieza a sonar, su sonido puede arrancar antes de que se aplique el efecto.
- Las apps de ecualizador pueden tomar el control. Si usas una, puede quedarse con el mismo audio y las dos pueden estorbarse.
- Los efectos permanecen hasta que la app los suelta. Si desinstalas AppVolume mientras una app suena, esa app mantiene su nivel hasta que libera su audio. Los Ajustes tienen un botón para devolver antes todas las apps al volumen máximo.
- Depende de un informe del sistema. Si una futura versión de Android deja de permitir leerlo, el mezclador ya no podría ver qué suena. AppVolume está hecha para no cambiar nada en ese caso en lugar de adivinar.
¿Qué app de volumen por app te conviene?
Si lo que quieres es sobre todo bajar una app mientras la usas, puede bastar un conmutador según la app en primer plano. Si quieres dos apps sonando a la vez a niveles distintos, necesitas algo que cambie el sonido propio de cada app. AppVolume vs Precise Volume compara dos enfoques, y quien tenga un Samsung debería leer AppVolume vs Samsung Sound Assistant, porque Samsung ofrece su propia vía. Elijas lo que elijas, AppVolume no tiene anuncios ni cuenta, por los motivos de por qué nuestras apps no tienen anuncios.
Fuentes
Preguntas
¿Por qué Android no tiene volumen por app?
Android agrupa el sonido por para qué sirve, no por qué app lo produce. Multimedia, tonos de llamada, alarmas, notificaciones y llamadas tienen cada uno su volumen, y todas las apps que reproducen contenido multimedia comparten el de multimedia. Así las teclas de volumen son sencillas, pero un juego y un podcast suenan siempre al mismo nivel a menos que intervenga una app.
¿Puedo controlar el volumen de cada app sin root?
Sí. AppVolume no necesita root ni ordenador. Necesita un permiso que solo pueden dar las herramientas de desarrollo del móvil, y te guía para conseguirlo en el propio móvil: activa la Depuración inalámbrica, escribe un código de vinculación de seis dígitos y listo. El permiso se mantiene tras reinicios y actualizaciones, y Shizuku o root también sirven si ya los usas.
¿Por qué AppVolume necesita la Depuración inalámbrica?
Para saber qué app reproduce qué sonido, AppVolume lee un informe de estado del servicio de audio del sistema, y Android solo deja leerlo a las apps con un permiso de desarrollador. Ese permiso solo lo puede conceder la línea de comandos del móvil. La Depuración inalámbrica es la forma en que el móvil da a AppVolume acceso a ella una sola vez, en el propio móvil. Después de la configuración puedes volver a desactivarla.
¿El volumen por app funciona con todas las apps?
No con todas. Unas pocas apps reproducen el sonido por vías que Android no deja ajustar, como algunos juegos con audio de baja latencia. AppVolume te avisa cuando una app no se puede ajustar, en lugar de dejarte un control que no hace nada. Además, una app puede sonar una fracción de segundo a su nivel normal antes de que se aplique tu ajuste.