Heim >Java >javaLernprogramm >Wie kann ich .WAV-Dateien in Java problemlos abspielen?

Wie kann ich .WAV-Dateien in Java problemlos abspielen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-13 01:54:02829Durchsuche

How to Play .WAV Files in Java with Ease?

WAV-Dateien problemlos in Java abspielen

Das Abspielen von Audiodateien in Java kann mit den richtigen Tools und Techniken ein Kinderspiel sein. Lassen Sie uns diese Herausforderung angehen, indem wir einen einfachen Piepton abspielen, wenn eine Taste gedrückt wird.

Code-Snippet zum Abspielen von .WAV-Dateien

Um dies zu erreichen, verwenden wir das folgende Java-Code-Snippet nutzt erweiterte Audiofunktionen:

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 PlaySound {

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

    public void playSound(String filename){

        String strFilename = filename;

        try {
            soundFile = new File(strFilename);
        } catch (Exception e) {
            e.printStackTrace();
            System.exit(1);
        }

        try {
            audioStream = AudioSystem.getAudioInputStream(soundFile);
        } catch (Exception e){
            e.printStackTrace();
            System.exit(1);
        }

        audioFormat = audioStream.getFormat();

        DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat);
        try {
            sourceLine = (SourceDataLine) AudioSystem.getLine(info);
            sourceLine.open(audioFormat);
        } catch (LineUnavailableException e) {
            e.printStackTrace();
            System.exit(1);
        } catch (Exception e) {
            e.printStackTrace();
            System.exit(1);
        }

        sourceLine.start();

        int nBytesRead = 0;
        byte[] abData = new byte[BUFFER_SIZE];
        while (nBytesRead != -1) {
            try {
                nBytesRead = audioStream.read(abData, 0, abData.length);
            } catch (IOException e) {
                e.printStackTrace();
            }
            if (nBytesRead >= 0) {
                @SuppressWarnings("unused")
                int nBytesWritten = sourceLine.write(abData, 0, nBytesRead);
            }
        }

        sourceLine.drain();
        sourceLine.close();
    }
}

Schritt für Schritt Erläuterung

  • Die Methode playSound() verwendet den Dateinamen der WAV-Datei als Eingabeparameter.
  • Sie initialisiert verschiedene audiobezogene Objekte, einschließlich Datei, Stream und Format , und Tonzeile.
  • Der Code liest die WAV-Datei und öffnet die Quellzeile, um die Wiedergabe vorzubereiten.
  • Eine While-Schleife liest die Datei in Blöcken und schreibt sie in die Quellzeile.
  • Sobald die Datei vollständig gelesen ist, wird die Quellzeile geleert und geschlossen, um eine saubere Audiowiedergabe sicherzustellen.

Das obige ist der detaillierte Inhalt vonWie kann ich .WAV-Dateien in Java problemlos 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