Coulisses
Comment fonctionne le volume par appli sur Android sans root
Par l'équipe llcloud 5 min de lecture
Réponse rapide
Android règle le volume par type de son, comme média, sonnerie et alarme, donc toutes les applis qui jouent des médias partagent un seul curseur. AppVolume donne à chaque appli son propre niveau en attachant un effet audio à sa lecture et en montant ou baissant son gain. Savoir quelle appli joue demande une autorisation de développeur, qu'AppVolume obtient une fois via le Débogage sans fil et un code d'association à six chiffres, sans root, sans ordinateur et sans service d'accessibilité.
Baissez un jeu et le podcast baisse avec lui. Montez les indications de navigation et la musique monte aussi. Tous ceux qui écoutent deux choses à la fois sur Android finissent par tomber là-dessus. Nous avons créé AppVolume pour y remédier, et son fonctionnement en dit long sur la façon dont Android gère le son. Voici le tout en mots simples.
Pourquoi Android n'a-t-il qu'un seul volume média ?
Android ne règle pas le volume par appli. Il le règle par type de son, ce qu'Android appelle un flux. Les médias forment un flux, et les sonneries, alarmes, notifications et appels ont chacun le leur. Quand vous appuyez sur les touches de volume pendant une lecture, vous déplacez le flux média, que partagent toutes les applis qui jouent de la musique, des vidéos, des jeux ou des podcasts.
Cette conception garde les choses simples. Les touches de volume font toujours quelque chose de prévisible, et une alarme ne se retrouve jamais muette parce qu'un jeu a baissé son propre son. Le prix à payer : deux applis qui jouent des médias ne peuvent jamais avoir des niveaux différents d'elles-mêmes. Notre guide pour régler un volume différent pour chaque appli présente ce que les téléphones offrent d'origine, c'est-à-dire rien sur la plupart.
Comment fonctionnent les autres applis de volume par appli ?
Beaucoup d'applis de volume surveillent quelle appli est au premier plan et changent l'unique volume média quand elle change. Vous ouvrez le jeu, le volume média baisse. Vous passez au podcast, il remonte. Cela peut marcher pour une appli à la fois, mais il n'y a toujours qu'un curseur. Deux applis qui jouent ensemble, comme de la musique sous une appli de navigation, partagent toujours un niveau.
Certaines de ces applis demandent aussi un service d'accessibilité, pour voir quelle appli est à l'écran ou capter les touches de volume. C'est une autorisation puissante pour un travail aussi petit.
Comment AppVolume donne-t-il à chaque appli son propre niveau ?
Android dispose d'un ensemble d'effets audio, comme les égaliseurs et les processeurs de dynamique, qu'une appli peut attacher à une lecture, que le système appelle une session audio. L'un d'eux peut monter ou baisser le gain du son qui le traverse. AppVolume attache cet effet aux sessions de chaque appli dont vous réglez le niveau, et fixe son gain d'après votre curseur.
Le changement touche donc uniquement le son de cette appli, avant qu'il atteigne le haut-parleur. Un podcast à 80 % et un jeu à 20 % jouent vraiment à ces niveaux en même temps. Le même effet permet à Pro de booster une appli trop faible jusqu'à 200 % et de décaler sa balance à gauche ou à droite.
AppVolume n'écoute, n'enregistre et n'envoie jamais votre son. Il ne surveille ni votre écran ni vos touches de volume, et n'a aucun service d'accessibilité. Il se contente de monter ou baisser un niveau.
Pourquoi la configuration passe-t-elle par le Débogage sans fil et un code d'association ?
Pour attacher un effet, AppVolume doit d'abord savoir quelles sessions existent et à quelle appli chacune appartient. Le service audio du système tient un rapport d'état qui les liste, et Android ne laisse une appli le lire qu'avec une autorisation destinée aux développeurs. Une appli ne peut pas demander cette autorisation de la manière habituelle. Seul le shell du téléphone, le même niveau d'accès qu'un ordinateur obtient par un câble de débogage, ou le root peut l'accorder.
Le Débogage sans fil donne cet accès shell sans ordinateur. Pendant la configuration, vous l'activez, et Android affiche un code d'association à six chiffres. Vous le saisissez dans AppVolume, qui s'associe au téléphone sur lequel il tourne et s'accorde cette unique autorisation en une seule commande. C'est toute la configuration. Aucun assistant ne continue à tourner ensuite.
L'autorisation reste ensuite après les redémarrages et les mises à jour de l'appli, vous pouvez donc désactiver à nouveau le Débogage sans fil et les Options pour les développeurs. Si vous utilisez déjà Shizuku ou un téléphone rooté, AppVolume peut s'en servir à la place. Nous utilisons une association similaire pour un autre travail dans Repel, que nous décrivons dans comment le pare-feu de Repel fonctionne sans prendre votre place VPN.
Que se passe-t-il derrière le curseur ?
Un mélangeur qui touche au son des autres applis doit être prudent, car une erreur s'entend fort. AppVolume suit donc quelques règles :
- Inconnu ne veut pas dire silence. Si le rapport d'état est illisible, AppVolume ne change rien. Le lire comme « rien ne joue » ferait tomber tous les effets et remettrait toutes les applis à plein volume d'un coup.
- Disparu veut dire disparu deux fois. Une session doit manquer à deux lectures de suite avant que son effet soit libéré, pour qu'un bref trou ne provoque pas de saut.
- Vos niveaux sont retenus. Réglez une appli une fois, même avant qu'elle joue, et le niveau s'applique à chaque démarrage.
- Un remboursement n'enferme personne. Une appli qui a déjà un niveau peut toujours être remontée.
Quelles sont les limites, honnêtement ?
Le volume par appli via les effets audio marche pour la plupart des applis qui jouent du son, pas pour toutes.
- Certaines applis ne peuvent pas être réglées. Quelques-unes jouent le son par des chemins qu'aucun effet n'atteint sous Android, comme certains jeux à audio basse latence. AppVolume essaie plusieurs fois pendant environ une minute et demie avant de trancher, puis vous le dit et marque l'appli, au lieu de laisser un curseur qui ne fait rien.
- Il peut y avoir une fraction de seconde à plein niveau. Quand une appli commence à jouer, son son peut démarrer avant que l'effet soit attaché.
- Les applis d'égaliseur peuvent prendre le contrôle. Si vous en utilisez une, elle peut prendre la main sur le même son, et les deux peuvent se gêner.
- Les effets restent tant que l'appli ne lâche pas. Si vous désinstallez AppVolume pendant qu'une appli joue, elle garde son niveau jusqu'à ce qu'elle libère son audio. Les Réglages ont un bouton pour remettre toutes les applis à plein volume avant cela.
- Tout dépend d'un rapport du système. Si une future version d'Android empêche les applis de le lire, le mélangeur ne pourrait plus voir ce qui joue. AppVolume est conçu pour ne rien changer dans ce cas plutôt que de deviner.
Quelle appli de volume par appli vous convient ?
Si vous voulez surtout une appli plus basse pendant que vous l'utilisez, un sélecteur au premier plan peut suffire. Si vous voulez deux applis qui jouent ensemble à des niveaux différents, il faut quelque chose qui change le son propre de chaque appli. AppVolume vs Precise Volume compare deux approches, et les possesseurs de Samsung liront AppVolume vs Samsung Sound Assistant, car Samsung propose sa propre voie. Quel que soit votre choix, AppVolume n'a ni pub ni compte, pour les raisons de pourquoi nos applis n'ont pas de pub.
Sources
Questions
Pourquoi Android n'a-t-il pas de volume par appli ?
Android regroupe les sons selon leur usage, pas selon l'appli qui les produit. Médias, sonneries, alarmes, notifications et appels ont chacun un volume, et toutes les applis qui jouent des médias partagent celui des médias. Cela garde les touches de volume simples, mais un jeu et un podcast jouent toujours au même niveau, sauf si une appli intervient.
Puis-je régler le volume de chaque appli sans root ?
Oui. AppVolume n'a besoin ni de root ni d'ordinateur. Il lui faut une autorisation que seuls les outils de développement du téléphone peuvent donner, et il vous guide sur le téléphone : activez le Débogage sans fil, saisissez un code d'association à six chiffres, et c'est fini. L'autorisation reste après les redémarrages et les mises à jour, et Shizuku ou le root marchent aussi si vous les utilisez déjà.
Pourquoi AppVolume a-t-il besoin du Débogage sans fil ?
Pour voir quelle appli joue quel son, AppVolume lit un rapport d'état du service audio du système, et Android ne laisse les applis le lire qu'avec une autorisation de développeur. Seul le shell du téléphone peut l'accorder. Le Débogage sans fil permet au téléphone de donner une fois un accès shell à AppVolume, sur le téléphone lui-même. Après la configuration, vous pouvez le désactiver.
Le volume par appli marche-t-il avec toutes les applis ?
Pas toutes. Quelques applis jouent le son par des chemins qu'Android ne permet à rien de régler, comme certains jeux à audio basse latence. AppVolume vous dit quand une appli ne peut pas être réglée au lieu de laisser un curseur qui ne fait rien. Une appli peut aussi jouer une fraction de seconde à son niveau normal avant que votre réglage s'applique.