Jak mogę odtworzyć plik .mp3
i .wav
w mojej aplikacji Java? Używam Swing. Próbowałem poszukać w Internecie czegoś takiego, jak ten przykład:
public void playSound() {
try {
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("D:/MusicPlayer/fml.mp3").getAbsoluteFile());
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start();
} catch(Exception ex) {
System.out.println("Error with playing sound.");
ex.printStackTrace();
}
}
Ale to tylko odtworzy .wav
pliki.
Tak samo z:
http://www.javaworld.com/javaworld/javatips/jw-javatip24.html
Chcę mieć możliwość odtwarzania .mp3
plików i .wav
plików tą samą metodą.
main
metodzie konieczne jest dodanie aThread.sleep
, aby usłyszeć dźwięk, w przeciwnym razie program zakończy się, zanim to się stanie. Użytecznym sposobem na to jest:Thread.sleep(clip.getMicrosecondLength() / 1000);
Odpowiedzi:
Java FX ma
Media
iMediaPlayer
klasy, które będą odtwarzać pliki mp3.Przykładowy kod:
Będziesz potrzebował następujących instrukcji importu:
źródło
Media
iMediaPlayer
nie są to klasy Java , ale klasy JavaFX . Aby dodać obsługę mp3 do Javy na OS X lub Windows, możesz zajrzeć do SampledSP . I tak - pisałem te biblioteki.Napisałem czysty odtwarzacz mp3 java: mp3transform .
źródło
możesz grać w .wav tylko z java API:
kod:
I odtwarzaj .mp3 z jLayer
źródło
Minęło trochę czasu, odkąd go używałem, ale JavaLayer świetnie nadaje się do odtwarzania plików MP3
źródło
Korzystanie ze standardowego interfejsu API javax.sound, jednej zależności Maven, całkowicie Open Source ( wymagana Java 7 ):
pom.xml
Kod
Bibliografia:
źródło
Polecam korzystanie z BasicPlayerAPI. Jest open source, bardzo prosty i nie wymaga JavaFX. http://www.javazoom.net/jlgui/api.html
Po pobraniu i rozpakowaniu pliku zip należy dodać następujące pliki jar do ścieżki budowania projektu:
Oto minimalistyczny przykład użycia:
Wymagany import:
To wszystko, czego potrzebujesz, aby zacząć grać muzykę. Odtwarzacz uruchamia swój własny wątek odtwarzania i zarządza nim oraz zapewnia funkcje odtwarzania, wstrzymywania, wznawiania, zatrzymywania i wyszukiwania .
Aby uzyskać bardziej zaawansowane zastosowania, możesz rzucić okiem na odtwarzacz muzyczny jlGui. Jest to klon WinAmp typu open source: http://www.javazoom.net/jlgui/jlgui.html
Pierwszą klasą, której należy się przyjrzeć, byłby PlayerUI (w pakiecie javazoom.jlgui.player.amp). Całkiem dobrze demonstruje zaawansowane funkcje BasicPlayera.
źródło
mp3spi1.9.4.jar
należy jednak zastąpić zmp3spi1.9.5.jar
witryny powiększania java.player.play()
lub możesz nie usłyszeć żadnego dźwięku.Najłatwiejszym sposobem, jaki znalazłem, było pobranie pliku jar JLayer z http://www.javazoom.net/javalayer/sources.html i dodanie go do biblioteki Jar http://www.wikihow.com/Add-JARs- do-projektu-budowania-ścieżek-w-Eclipse-% 28Java% 29
Oto kod zajęć
a oto import
źródło
Aby dać czytelnikom inną alternatywę, proponuję bibliotekę JACo MP3 Player, wieloplatformowy odtwarzacz mp3 java.
Cechy:
Pełną listę jego metod i atrybutów można znaleźć w dokumentacji tutaj .
Przykładowy kod:
Aby uzyskać więcej informacji, utworzyłem tutaj prosty samouczek , który zawiera kod źródłowy do pobrania.
źródło
Korzystanie z dekodera / odtwarzacza / konwertera MP3 Zależność Maven.
źródło
Najpierw musisz zainstalować JMF ( pobierz za pomocą tego linku )
nie zapomnij dodać plików jar JMF
źródło
Wyszukaj bibliotekę JAVE na freshmeat.net (skrót od Java Audio Video Encoder) (łącze tutaj ). To biblioteka do tego typu rzeczy. Nie wiem, czy Java ma natywną funkcję mp3.
Prawdopodobnie będziesz musiał zawinąć razem funkcję mp3 i wav, używając dziedziczenia i prostej funkcji opakowującej, jeśli chcesz, aby jedna metoda uruchamiała oba typy plików.
źródło
Aby dodać obsługę odczytu MP3 do Java Sound, dodaj
mp3plugin.jar
JMF do ścieżki klasy aplikacji w czasie wykonywania.Zwróć uwagę, że
Clip
klasa ma ograniczenia pamięci, które sprawiają, że nie nadaje się do odtwarzania dźwięku wysokiej jakości przez więcej niż kilka sekund.źródło
Mam na to inne metody, pierwsza to:
A po drugie:
A jeśli chcemy zrobić pętlę z tym dźwiękiem, używamy tej metody.
jeśli chcemy zatrzymać tę pętlę, dodajemy te libreries w try:
dla tej trzeciej metody dodajemy następujące importy:
źródło
Użyj tej biblioteki: import sun.audio. *;
źródło