Loupe

Android : booster le volume des media joués avec le MediaPlayer en utilisant LoudnessEnhancer

Il est assez facile de jouer des sons sur Android à l'aide de la classe MediaPlayer. On peut aussi assez facilement intervenir sur le volume du périphérique. Mais si ce n'est toujours pas assez fort ? Pour cela le SDK a une solution que nous allons découvrir dans cet article.

Imaginez vous en train d'écouter tranquillement votre Podcast préféré sur votre canapé. Vous arrivez au moment crucial ou le dénouement de tout le scénario va se produire et ... patatrac... 3 mômes déboulent dans le salon en se courant les uns à après les autres. Impossible d'entendre la fin du Podcast pour le moment et il va falloir attendre. Cette situation est exactement ce qui m'a fait découvrir la classe LoudnessEnhancer du SDK Android !

Le LoudnessEnhancer permet d'augmenter le niveau sonore du son joué par le MediaPlayer. Ce n'est pas une augmentation bête et méchante et à priori nous sommes donc à l'abri d'avoir un son complètement distordu. Son utilisation est très rapide une fois qu'on connaît la classe à utiliser : on créé une instance en passant en paramètre l'identifiant de la session audio actuelle, on configure le gain voulu et on l'active.

var gain = 600; 

// récupération de l'identifiant de session audio
var sessionId = monMediaPlayer.AudioSessionId;
if (sessionId <= 0) { return; }

// création de l'instance
var loudnessEnhancer = new LoudnessEnhancer(sessionId);

// on configure le gain voulu et on active l'effet.
loudnessEnhancer.SetTargetGain(gain);
loudnessEnhancer.SetEnabled(true);

Personnellement, je crée une instance à chaque modification du gain mais il est possible de le modifier à la volée. C'est une classe implémentant IDisposable donc pensez bien à nettoyer cette ressource en appelant Dispose() une fois qu'elle est devenue inutile.

Mais au fait c'est quoi ce gain ? Il s'agit d'une valeur entière exprimée en mB c'est à dire des millibels (100mB = 1dB) avec la valeur 0 qui correspond à aucune amplification. Cela signifie donc en gros que pour amplifier le volume par 2 il faut mettre la valeur 300, par 4 la valeur 600, etc, je vous laisse le tableau wikipedia de référence. Il est aussi possible de passer un gain négatif et donc d'avoir des niveaux de volume très bas lorsque vous voulez écouter des Podcasts tout doucement dans votre lit sans réveiller le troll l'enfant qui dort juste à côté de vous.

Vous pouvez maintenant proposer aux utilisateurs d'application de suivi de Podcasts de choisir ce qu'il y a de mieux comme volume sonore pour lui !

Screenshot_2020-06-10-21-07-12-006_com.jonathanantoine.Podcasts.jpg

Happy coding !

 

PS : (spoiler... attention spoiler.....) tout ça pour découvrir que c'est Bran, le mec qui n'a rien fait de toute la série qui devient le roi ... beaucoup d'efforts pour une fin pas terrible 😂

PS2 : cela ne marche pas sur GoogleHome vu que tout est local mais vous pouvez retrouver sur notre blog comment diffuser un media sur vos Chromecasts.

Photo de profil

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus