首页 >Java >java教程 >如何在 Java 应用程序中单击按钮来播放 .WAV 文件?

如何在 Java 应用程序中单击按钮来播放 .WAV 文件?

Patricia Arquette
Patricia Arquette原创
2024-11-14 11:20:02660浏览

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

通过单击按钮使用 Java 播放 .WAV 文件

开发 Java 应用程序时,通常需要将音效或音频播放合并到其中用户体验。本文演示了如何在单击按钮时播放短促的 .wav 蜂鸣声。

播放 .WAV 文件的代码片段

以下代码片段提供了详细的解决方案这问题:

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

说明

  • playSound(String filename) 方法将 .wav 文件的路径作为输入并播放音频。
  • closeResources()方法关闭所有用于音频播放的资源,例如音频流和源
  • BUFFER_SIZE 是为了提高效率而指定的,以避免为音频播放创建太多的小缓冲区。

结论

使用此代码, Java 开发人员可以轻松地将 .wav 声音播放合并到他们的应用程序中,从而使他们能够通过声音效果和声音来增强用户体验。通知。

以上是如何在 Java 应用程序中单击按钮来播放 .WAV 文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn