Maison >Java >javaDidacticiel >Comment lire facilement des fichiers .WAV en Java ?

Comment lire facilement des fichiers .WAV en Java ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-13 01:54:02836parcourir

How to Play .WAV Files in Java with Ease?

Lire facilement des fichiers .WAV en Java

La lecture de fichiers audio en Java peut être un jeu d'enfant avec les bons outils et techniques. Relevons ce défi en émettant un simple bip lorsqu'un bouton est enfoncé.

Extrait de code pour la lecture de fichiers .WAV

Pour y parvenir, l'extrait de code Java suivant exploite des capacités audio avancées :

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();
    }
}

Étape par étape Explication

  • La méthode playSound() prend le nom de fichier du fichier WAV comme paramètre d'entrée.
  • Elle initialise divers objets liés à l'audio, notamment le fichier, le flux, le format , et la ligne sonore.
  • Le code lit le fichier WAV et ouvre la ligne source pour préparer la lecture.
  • Un moment La boucle lit le fichier en morceaux et l'écrit sur la ligne source.
  • Une fois le fichier entièrement lu, la ligne source est drainée et fermée, garantissant une lecture audio propre.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn