Maison > Java > javaDidacticiel > le corps du texte

Comment lire facilement des fichiers .WAV en Java ?

Mary-Kate Olsen
Libérer: 2024-11-13 01:54:02
original
773 Les gens l'ont consulté

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();
    }
}
Copier après la connexion

É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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal