Diselesaikan: Cara memainkan suara di java

Pembaharuan Terakhir: 06/19/2023

Cara memainkan suara di Pada artikel ini, kita akan menyelami pemutaran suara di Java, masalah umum yang dihadapi developer saat membuat berbagai aplikasi, seperti game dan pemutar multimedia. Kami akan membahas solusi langkah demi langkah, menjelajahi pustaka yang diperlukan untuk menyelesaikan tugas ini, dan memberikan penjelasan kode secara mendalam. Java, yang dikenal dengan keserbagunaan dan kemudahan penggunaannya, dilengkapi dengan beragam pustaka yang dapat membantu pengembang meningkatkan fungsionalitas dan kapabilitas aplikasi mereka. Salah satu area penting tersebut mencakup dukungan suara dan audio.

Pengantar Java Sound API

Java Sound API adalah perangkat canggih yang dirancang untuk memberikan dukungan suara di semua platform. Itu dibundel dengan Java Development Kit (JDK) dan memungkinkan pengembang untuk memutar, merekam, dan memproses file audio dalam berbagai format. Pada artikel ini, kami akan fokus pada dasar-dasar pemutaran suara di aplikasi Java menggunakan kelas AudioClip dan AudioSystem, yang merupakan bagian dari Java Sound API.

Java Sound API dapat dikategorikan menjadi dua paket utama: javax.suara.sampel dan javax.suara.midi. Paket sampel digunakan untuk menangani fungsi audio dasar seperti memutar, merekam, dan menyintesis data audio, sedangkan paket midi dirancang untuk mengelola komposisi dan soundtrack musik berbasis MIDI.

Memutar Suara menggunakan AudioClip

Untuk memulainya, mari jelajahi cara memutar file suara menggunakan Klip Audio antarmuka, yang merupakan bagian dari java.applet kemasan. Meskipun antarmuka AudioClip awalnya dibuat untuk applet, antarmuka ini masih relevan dan berguna untuk memutar file audio kecil di 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 cuplikan kode di atas, kami telah mengimpor file Klip Audio antarmuka dan URL kelas. Kelas-kelas ini memungkinkan kita memuat sumber daya audio dan memutarnya menggunakan metode play() dari instance AudioClip. Untuk menggunakan AudioClip, pastikan untuk meletakkan file "sound.wav" di direktori yang sama dengan file Java Anda atau berikan jalur file yang benar.

Namun, jika Anda bekerja dengan file audio yang lebih besar atau memerlukan kontrol pemutaran yang lebih canggih, antarmuka AudioClip mungkin tidak cukup, dan Anda harus mempertimbangkan untuk menggunakan kelas AudioSystem.

Memutar suara menggunakan kelas AudioSystem

The Sistem Audio class adalah bagian dari paket javax.sound.sampled dan menyediakan kemampuan pemutaran audio yang lebih canggih. Contoh berikut menunjukkan cara memutar file 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, pertama-tama kita mengimpor kelas dan antarmuka yang diperlukan dari javax.suara.sampel kemasan. Kemudian, kami membuat sebuah Aliran Masukan Audio objek untuk membaca data audio dari file, dan a Klip Misalnya untuk menyimpan data audio dalam memori. Setelah membuka klip, kami memanggil metode start() untuk memainkan suara.

Pendekatan ini memberikan lebih banyak kontrol atas pemutaran audio, termasuk kemampuan untuk menjeda, melanjutkan, mengulang, dan menghentikan suara, sehingga cocok untuk berbagai aplikasi.

Singkatnya, kami membahas dua pendekatan berbeda untuk memainkan suara di Java menggunakan kelas AudioClip dan AudioSystem. Antarmuka AudioClip cocok untuk file audio kecil dalam aplikasi sederhana, sedangkan kelas AudioSystem menawarkan kemampuan pemutaran audio tingkat lanjut untuk skenario yang lebih kompleks. Memanfaatkan perpustakaan Java yang kuat memastikan fungsionalitas suara yang mulus dan pengalaman pengguna yang ditingkatkan di berbagai aplikasi.

Pos terkait: