yzt
2023-05-26 2f70f6727314edd84d8ec2bfe3ce832803f1ea77
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.hxzkoa.udp;
import java.io.File;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.SourceDataLine;
/**该类用于调用播放声音文件*/
public class Music extends Thread {
    private String musicName;//音频文件名称
 
    public Music(String musicName)
    {
        this.musicName=musicName;
    }
 
    public void run() {
 
        File name = new File(musicName);
        AudioInputStream ypsrl = null;
        try {
            ypsrl = AudioSystem.getAudioInputStream(name);
        } catch (Exception e){}
 
        AudioFormat format = ypsrl.getFormat();
        SourceDataLine aqsj = null;
        DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
 
        try {
            aqsj = (SourceDataLine) AudioSystem.getLine(info);
            aqsj.open(format);
        } catch (Exception e){}     
        aqsj.start();
 
        int zjtj = 0;
        byte[] hczj = new byte[1024];
        try {
            while (zjtj  != -1) {
                zjtj = ypsrl.read(hczj, 0, hczj.length);
                if (zjtj  >= 0)
                    aqsj.write(hczj, 0, zjtj );
            }
        } catch (Exception e){}
        finally {
            aqsj.drain();//将残留部分处理干净
            aqsj.close();
        }
    }   
}