Jak v programovacím jazyce Java přehrávat hudební soubory ve formátu MP3 je více řešení. Java sama o sobě nemá žádné třídy, které by přehrávání MP3 souborů umožňovali. Existuje ale několik externích tříd, díky kterým můžeme MP3 soubory přehrávat. V tomto článku si ukážeme, jak přehrávat MP3 hudební soubory pomocí balíku JavaLayer (Jlayer).
Jak jsem již uvedl, máte více možností implementace MP3 dekodéru. Jedna z možností je použití JMF MP3 pluginu, který vyvíjí samotný Sun. Ten si můžete stahnout na stránkách společnosti Sun. Na těchto stránkách budete moci stáhnout samotný plugin k přehrávání MP3 a také zde najdete dokumentaci.
My se ovšem budeme zabývat MP3 dekoderem, který není vyvíjen přímo rodinou Sun. Jedná se o JLayer (JavaLayer). Je to balík tříd, díky kterému můžeme MP3 přehrávat, dekódovat, konvertovat atd.
JavaLayer můžete stahnout na adrese - www.javazoom.net/javalayer/sources.html
Zde k tomuto balíku naleznete dokumentaci -JLayerDocs
Jak přehrát MP3?
Nejprve upozorním, že po stažení JLayer musíte tento soubor extrahovat a z rozbaleného archivu použít soubor jl1.0.1.jar. Na tento soubor musíte při kompilaci vždy nastavit classpath!
Takto by už mohl vypadat kód, který by přehrál soubor demo.mp3:
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import javazoom.jl.player.Player;
public class Main {
private Player prehravac;
public void hraj() {
try {
BufferedInputStream buff = new BufferedInputStream(new FileInputStream("demo.mp3"));
prehravac = new Player(buff);
prehravac.play();
}
catch (Exception ex) {
System.out.println(ex);
}
}
public void close() { if (prehravac != null) prehravac.close(); }
public static void main(String[] args) {
new Main().hraj();
}
}
Doporučuje se ovšem, aby objekt, který obstarává zvuk (přehrává ho atp.) běžel ve vlastním vlákně. Implementace vláken v Javě lze provést opět několika způsoby. Předchozí kód by byl asi nejrychleji upravitelný tak, kdyby jsme do třídy Main implementovali rozhraní Runnable a metodu hraj přejmenovali na run().
