Selesai: Bagaimana untuk memainkan bunyi pada java

Kemaskini terakhir: 06/19/2023

Cara memainkan bunyi pada Dalam artikel ini, kita akan menyelami bunyi memainkan dalam Java, masalah biasa yang dihadapi oleh pembangun apabila membina pelbagai aplikasi, seperti permainan dan pemain multimedia. Kami akan membincangkan penyelesaian langkah demi langkah, meneroka perpustakaan yang diperlukan untuk menyelesaikan tugas ini dan memberikan penjelasan yang mendalam tentang kod tersebut. Java, yang terkenal dengan kepelbagaian dan kemudahan penggunaannya, dilengkapi dengan pelbagai perpustakaan yang boleh membantu pembangun meningkatkan fungsi dan keupayaan aplikasi mereka. Satu bidang penting tersebut termasuk sokongan bunyi dan audio.

Pengenalan kepada Java Sound API

Java Sound API ialah kit alat berkuasa yang direka untuk menyediakan sokongan bunyi merentas semua platform. Ia disertakan bersama Kit Pembangunan Java (JDK) dan membolehkan pembangun memainkan, merakam dan memproses fail audio dalam pelbagai format. Dalam artikel ini, kami akan menumpukan pada asas memainkan bunyi dalam aplikasi Java menggunakan kelas AudioClip dan AudioSystem, yang merupakan sebahagian daripada Java Sound API.

Java Sound API boleh dikategorikan kepada dua pakej utama: javax.sound.sampled and javax.sound.midi. Pakej sampel digunakan untuk mengendalikan fungsi audio asas seperti memainkan, merakam dan mensintesis data audio, manakala pakej midi direka untuk mengurus gubahan muzik dan runut bunyi berasaskan MIDI.

Memainkan Bunyi menggunakan AudioClip

Sebagai permulaan, mari kita terokai cara memainkan fail bunyi menggunakan Klip Audio antara muka, yang merupakan sebahagian daripada java.applet pakej. Walaupun antara muka AudioClip pada mulanya dicipta untuk applet, ia masih relevan dan berguna untuk memainkan fail audio kecil dalam aplikasi Java.

import java.applet.AudioClip;
import java.net.URL;
public class SoundPlayer {
    public static void main(String[] args) {
        AudioClip sound;
        URL soundURL = SoundPlayer.class.getResource("sound.wav");
        sound = java.applet.Applet.newAudioClip(soundURL);
        sound.play();
    }
}

Dalam coretan kod di atas, kami telah mengimport kod Klip Audio antara muka dan URL kelas. Kelas ini membolehkan kami memuatkan sumber audio dan memainkannya menggunakan kaedah main() contoh AudioClip. Untuk menggunakan Klip Audio, pastikan anda meletakkan fail "sound.wav" dalam direktori yang sama dengan fail Java anda atau berikan laluan fail yang betul.

Walau bagaimanapun, jika anda bekerja dengan fail audio yang lebih besar atau memerlukan kawalan yang lebih canggih ke atas main semula, antara muka AudioClip mungkin tidak mencukupi dan anda harus mempertimbangkan untuk menggunakan kelas AudioSystem.

Memainkan bunyi menggunakan kelas AudioSystem

. Sistem Audio kelas adalah sebahagian daripada pakej javax.sound.sampled dan menyediakan keupayaan main balik audio yang lebih maju. Contoh berikut menunjukkan cara memainkan fail audio menggunakan kelas AudioSystem:

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import java.io.File;
import java.io.IOException;

public class SoundPlayer {
    public static void main(String[] args) {
        try {
            File soundFile = new File("sound.wav");
            AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(soundFile);
            Clip clip = AudioSystem.getClip();
            clip.open(audioInputStream);
            clip.start();

            // Keep the application running till the sound is played completely
            Thread.sleep(clip.getMicrosecondLength() / 1000);
        } catch(LineUnavailableException | UnsupportedAudioFileException | IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

Dalam contoh ini, kami mula-mula mengimport kelas dan antara muka yang diperlukan daripada javax.sound.sampled pakej. Kemudian, kami mencipta satu AudioInputStream objek untuk membaca data audio daripada fail, dan a Klip contoh untuk menyimpan data audio dalam ingatan. Selepas membuka klip, kami memanggil kaedah mula() untuk memainkan bunyi.

Pendekatan ini memberikan lebih kawalan ke atas main balik audio, termasuk keupayaan untuk menjeda, menyambung semula, menggelung dan menghentikan bunyi, menjadikannya sesuai untuk pelbagai aplikasi.

Kesimpulannya, kami membincangkan dua pendekatan berbeza untuk memainkan bunyi dalam Java menggunakan kelas AudioClip dan AudioSystem. Antara muka AudioClip sesuai untuk fail audio kecil dalam aplikasi mudah, manakala kelas AudioSystem menawarkan keupayaan main balik audio lanjutan untuk senario yang lebih kompleks. Memanfaatkan perpustakaan Java yang berkuasa memastikan kefungsian bunyi yang lancar dan pengalaman pengguna yang dipertingkatkan merentasi pelbagai aplikasi.

Related posts: