Bagaimana saya bisa memainkan .mp3
dan .wav
file dalam aplikasi Java saya? Saya menggunakan Swing. Saya mencoba mencari di internet, untuk sesuatu seperti contoh ini:
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();
}
}
Tapi, ini hanya akan memutar .wav
file.
Sama halnya dengan:
http://www.javaworld.com/javaworld/javatips/jw-javatip24.html
Saya ingin dapat memutar .mp3
file dan .wav
file dengan metode yang sama.
main
metode, perlu menambahkan aThread.sleep
untuk mendengar suaranya, atau program akan berakhir sebelum itu terjadi. Cara yang berguna untuk melakukannya adalah:Thread.sleep(clip.getMicrosecondLength() / 1000);
Jawaban:
Java FX memiliki
Media
danMediaPlayer
kelas yang akan memutar file mp3.Kode contoh:
Anda akan membutuhkan pernyataan import berikut:
sumber
Media
danMediaPlayer
bukan kelas Java , tetapi kelas JavaFX . Untuk menambahkan dukungan mp3 ke Java di OS X atau Windows, Anda mungkin ingin melihat SampledSP . Dan ya - saya menulis perpustakaan itu.Saya menulis mp3 player java murni: mp3transform .
sumber
Anda dapat memainkan .wav hanya dengan java API:
kode:
Dan putar .mp3 dengan jLayer
sumber
Sudah lama saya tidak menggunakannya, tetapi JavaLayer sangat bagus untuk pemutaran MP3
sumber
Menggunakan API javax.sound standar, satu dependensi Maven, sepenuhnya Open Source ( diperlukan Java 7 ):
pom.xml
Kode
Referensi:
sumber
Saya akan merekomendasikan menggunakan BasicPlayerAPI. Ini open source, sangat sederhana dan tidak memerlukan JavaFX. http://www.javazoom.net/jlgui/api.html
Setelah mengunduh dan mengekstrak file zip, seseorang harus menambahkan file jar berikut ke jalur build proyek:
Berikut adalah contoh penggunaan minimalis:
Impor yang dibutuhkan:
Hanya itu yang Anda butuhkan untuk mulai memutar musik. Pemain memulai dan mengelola utas pemutarannya sendiri dan menyediakan fungsionalitas putar, jeda, lanjutkan, hentikan, dan cari .
Untuk penggunaan lebih lanjut, Anda dapat melihat di jlGui Music Player. Ini adalah tiruan WinAmp open source: http://www.javazoom.net/jlgui/jlgui.html
Kelas pertama yang harus dilihat adalah PlayerUI (di dalam paket javazoom.jlgui.player.amp). Ini menunjukkan fitur-fitur lanjutan dari BasicPlayer dengan cukup baik.
sumber
mp3spi1.9.4.jar
harus diganti denganmp3spi1.9.5.jar
dari situs zoom java sekalipun.player.play()
atau Anda mungkin tidak mendengar suara apa pun.Cara termudah yang saya temukan adalah mengunduh file jar JLayer dari http://www.javazoom.net/javalayer/sources.html dan menambahkannya ke perpustakaan Jar http://www.wikihow.com/Add-JARs- ke-Proyek-Build-Paths-in-Eclipse-% 28Java% 29
Ini kode untuk kelasnya
dan ini impornya
sumber
Untuk memberikan alternatif lain kepada pembaca, saya menyarankan perpustakaan JACo MP3 Player, pemutar mp3 java lintas platform.
Fitur:
Untuk daftar lengkap metode dan atributnya, Anda dapat memeriksa dokumentasinya di sini .
Kode sampel:
Untuk lebih jelasnya, saya membuat tutorial sederhana di sini yang menyertakan kode sumber yang dapat diunduh.
sumber
Menggunakan MP3 Decoder / player / converter Maven Dependency.
sumber
Anda perlu menginstal JMF terlebih dahulu ( unduh menggunakan tautan ini )
jangan lupa untuk menambahkan file jar JMF
sumber
Lakukan pencarian di freshmeat.net untuk JAVE (singkatan dari Java Audio Video Encoder) Library (tautan di sini ). Ini adalah perpustakaan untuk hal-hal semacam ini. Saya tidak tahu apakah Java memiliki fungsi mp3 asli.
Anda mungkin perlu menggabungkan fungsi mp3 dan fungsi wav, menggunakan pewarisan dan fungsi pembungkus sederhana, jika Anda ingin satu metode untuk menjalankan kedua jenis file.
sumber
Untuk menambahkan dukungan membaca MP3 ke Java Sound, tambahkan
mp3plugin.jar
JMF ke jalur kelas run-time aplikasi.Perhatikan bahwa
Clip
kelas memiliki batasan memori yang membuatnya tidak cocok untuk mendengarkan suara berkualitas tinggi selama lebih dari beberapa detik.sumber
Saya punya metode lain untuk itu, yang pertama adalah:
Dan yang kedua adalah:
Dan jika kita ingin membuat loop ke audio ini kita menggunakan metode ini.
jika kita ingin menghentikan loop ini kita menambahkan libreries ini dalam percobaan:
untuk metode ketiga ini kami menambahkan impor berikut:
sumber
Gunakan pustaka ini: import sun.audio. *;
sumber