playsound.java

来自「一款Java开发的打飞机小游戏」· Java 代码 · 共 46 行

JAVA
46
字号
import java.io.*;
import javax.sound.sampled.*;
import java.net.URL;

/**
 * 播放wav文件
 * @author fantasyer
 * @version 1.0
 */
public class PlaySound
{
    private AudioFormat audioFormat;                  //声音的格式
    private AudioInputStream audioInputStream;        //播放的数据流
    private SourceDataLine sourceDataLine;            //往混合器中发送的数据流
    private Clip clip;                                //SourceDataLine和Clip都是Line的子接口
                                                      //Clip的特点是数据均在内存中
    public PlaySound(String fileName)
    {
        try
        {
             //AudioInputStream是InputStream的子类,可以将其和一音频文件相关联
             //文件的长度表示不使用byte而是samples frame
            URL url = Class.forName("PlaySound").getClassLoader().getResource(fileName);
            audioInputStream = AudioSystem.getAudioInputStream(url);

            //AudioFormat指定了音频的格式,注意这里的格式和文件后缀名还不一样
            //这里的格式主要是指采样率等
            audioFormat = audioInputStream.getFormat();
            DataLine.Info dataLineInfo = new DataLine.Info(Clip.class,audioFormat);
            clip = (Clip)AudioSystem.getLine(dataLineInfo);
            clip.open(audioInputStream);
            clip.start();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    //for test
    public static void main(String[] args)
    {
        new PlaySound("Eat.wav");
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?