Heim >Java >javaLernprogramm >Wie kann ich eine .WAV-Datei per Knopfdruck in meiner Java-Anwendung abspielen?

Wie kann ich eine .WAV-Datei per Knopfdruck in meiner Java-Anwendung abspielen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-14 11:20:02701Durchsuche

How can I play a .WAV file with a button click in my Java application?

WAV-Dateien mit Java per Knopfdruck abspielen

Bei der Entwicklung von Java-Anwendungen ist es oft notwendig, Soundeffekte oder Audiowiedergabe einzubinden die Benutzererfahrung. In diesem Artikel wird gezeigt, wie beim Klicken auf eine Schaltfläche ein kurzer .wav-Piepton abgespielt wird.

Codeausschnitt zum Abspielen von .WAV-Dateien

Der folgende Codeausschnitt bietet eine detaillierte Lösung für Die Problem:

import java.io.File;
import java.io.IOException;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;

public class PlayWAVFileOnClick {

    private static final int BUFFER_SIZE = 128000;
    private File soundFile;
    private AudioInputStream audioStream;
    private AudioFormat audioFormat;
    private SourceDataLine sourceLine;

    public static void main(String[] args) {
        // Instantiate a new PlayWAVFileOnClick object
        PlayWAVFileOnClick player = new PlayWAVFileOnClick();

        // Specify the path to the .wav file
        String soundFilepath = "path/to/beep.wav";

        // Play the sound
        player.playSound(soundFilepath);

        // Close resources after playback
        player.closeResources();
    }

    public void playSound(String filename) {
        try {
            soundFile = new File(filename);
            audioStream = AudioSystem.getAudioInputStream(soundFile);
            audioFormat = audioStream.getFormat();
            DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat);
            sourceLine = (SourceDataLine) AudioSystem.getLine(info);
            
            sourceLine.open(audioFormat);
            sourceLine.start();
            
            byte[] data = new byte[BUFFER_SIZE];
            int readSize = 0;
            
            while ((readSize = audioStream.read(data)) != -1) {
                sourceLine.write(data, 0, readSize);
            }
            
        } catch (IOException | LineUnavailableException e) {
            e.printStackTrace();
        }
    }

    public void closeResources() {
        try {
            sourceLine.drain();
            sourceLine.close();
            audioStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Erklärung

  • Die Methode „playSound(String filename)“ verwendet den Pfad zur WAV-Datei als Eingabe und spielt das Audio ab.
  • closeResources() schließt alle für die Audiowiedergabe verwendeten Ressourcen, wie z. B. Audiostream und Quelle Zeile.
  • BUFFER_SIZE wird aus Effizienzgründen angegeben, um zu vermeiden, dass zu viele kleine Puffer für die Audiowiedergabe erstellt werden.

Fazit

Mit diesem Code Java-Entwickler können die WAV-Soundwiedergabe problemlos in ihre Anwendungen integrieren und so das Benutzererlebnis mit Soundeffekten und Benachrichtigungen verbessern.

Das obige ist der detaillierte Inhalt vonWie kann ich eine .WAV-Datei per Knopfdruck in meiner Java-Anwendung abspielen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn