Java, convertir des wav en mp3
2017-09-27
Je maintiens une IHM d’administration dans laquelle un petit player flash permet d’écouter des fichiers wav.
Le passage au player html5 a été laborieux.
Le player devait s’afficher dans une popup (on utilisait auparavant qtip mais le passage à html5 faisait planter le rendu aléatoirement) et un problème d’affichage du temps total du morceau était présent de temps à autre (cf solution dans billet précédent).
Une fois la popup affichée et le problème de temps résolu, je me suis heurté à un autre problème de taille…
En effet, IE11 (un des navigateurs à supporter) ne lit pas les fichiers wav !!!
J’ai donc cherché à convertir les fichiers wav en mp3.
La plupart des solutions sont à base de ffmepg encapsulé (comme JAVE) mais je n’ai pas réussi à les intégrer pour les faire fonctionner dans Tomcat. Cela était certainement dû au Security Manager…
Puis par chance, j’ai trouvé un convertisseur 100% java : Jump3r
La bibliothèque est disponible sur le repository maven (https://mvnrepository.com/artifact/de.sciss/jump3r/1.0.4) et les sources sur https://github.com/Sciss/jump3r
L’utilisation est simple pour convertir un fichier wav en mp3. Voici ci-dessous un exemple :
import de.sciss.jump3r.Main;
public void convertWavFileToMp3File(File source, File target) throws IOException {
String[] mp3Args = { "--preset","standard",
"-q","0",
"-m","s",
source.getAbsolutePath(),
target.getAbsolutePath()
};
(new Main()).run(mp3Args);
}
Dans celui-ci, la fonction main a été inlinée pour permettre d’attraper/relancer une éventuelle IOException.
Jump3r m’a sauvé la vie : il a permis de modifier la servlet qui délivrait le wav pour lui faire délivrer un mp3 compatible avec tous les players HTML 5 des navigateurs.
Liens utiles :