Tip Java 24: Cara memutar audio dalam aplikasi

Memutar file audio di aplikasi Java tidak didukung secara resmi dalam rilis Java saat ini. Tapi jangan takut, pasti ada jalan! Tip ini akan menunjukkan caranya - dimulai dengan deskripsi langkah-langkah dasar yang terlibat dalam memainkan klip audio di applet Java dan kemudian beralih ke dukungan aplikasi Java.

Memutar klip audio di applet cukup sederhana dan melibatkan langkah-langkah berikut:

  • Buat objek AudioClip
  • Muat file suara .au ke AudioClip
  • Putar suara satu kali atau terus menerus
  • Hentikan pemutaran

Begini tampilan kode untuk langkah-langkah ini:

import java.applet. *; AudioClip ac = getAudioClip (getCodeBase (), soundFile); ac.play (); // mainkan sekali ac.stop (); // berhenti memainkan ac.loop (); // bermain terus menerus

Tampaknya logis untuk menggunakan kode yang sama ini untuk memutar klip audio di aplikasi Java. Sayangnya, jika Anda melakukannya, Anda akan mendapatkan error dari compiler. Mengapa? Karena AudioClipobjek dan getAudioClip()metode adalah bagian dari paket java.applet - dan bukan bagian dari aplikasi. Kabar baiknya adalah kita bisa menyelam dan membuat semuanya bekerja sendiri.

Trik untuk memecahkan masalah ini adalah dengan menggunakan beberapa fitur tidak berdokumen yang disediakan oleh Sun di JDK-nya. Mengintip ke dalam file class.zip dari Sun JDK (menggunakan salah satu dari berbagai utilitas zipfile), kami tidak hanya menemukan paket Java standar seperti java.applet tetapi juga sun.audio . (Ini ada di direktori sun / audio.)

The sun.audio paket berisi segala sesuatu yang kita butuhkan untuk dapat memainkan klip audio! Berikut kodenya:

impor sun.audio. *; // impor paket sun.audio import java.io. *; // ** tambahkan ini ke dalam kode aplikasi Anda yang sesuai // Buka aliran input ke file audio. InputStream in = FileInputStream baru (Nama file); // Buat objek AudioStream dari aliran input. AudioStream as = new AudioStream (dalam); // Gunakan anggota kelas statis "pemutar" dari kelas AudioPlayer untuk memutar // klip. AudioPlayer.player.start (sebagai); // Demikian pula, untuk menghentikan audio. AudioPlayer.player.stop (sebagai);

Untuk menggunakan URL sebagai sumber aliran audio, gantikan aliran input dan penyiapan aliran audio berikut ini:

AudioStream sebagai = new AudioStream (url.openStream ()); 

Memutar aliran audio secara terus menerus menambah sedikit kerumitan:

// Buat aliran audio seperti yang dibahas sebelumnya. // Buat sumber AudioData. Data AudioData = as.getData (); // Buat ContinuousAudioDataStream. ContinuousAudioDataStream cas = baru ContinuousAudioDataStream (data); // Putar audio. AudioPlayer.player.play (cas); // Demikian pula, untuk menghentikan audio. AudioPlayer.player.stop (cas);

Dan begitulah. Ingat, teknik ini menggunakan fitur yang tidak terdokumentasi; tidak ada jaminan bahwa ini akan berfungsi dengan apa pun kecuali Sun JDK saat ini.

Chong Ser Wah adalah konsultan di Pusat Kompetensi untuk Jawa di Singapura. Lihat Kompetisi Piala Jawa pusat.

Artikel ini, "Tip Java 24: Cara memutar audio di aplikasi", awalnya diterbitkan oleh JavaWorld.