播放声音的类
复制代码代码如下:
นำเข้า java.io.File;
นำเข้า java.io.IOException;
นำเข้า javax.sound.sampled.AudioFormat;
นำเข้า javax.sound.sampled.AudioInputStream;
นำเข้า javax.sound.sampled.AudioSystem;
นำเข้า javax.sound.sampled.DataLine;
นำเข้า javax.sound.sampled.SourceDataLine;
//播放声音的类
PlaySounds คลาสสาธารณะขยายเธรด {
ชื่อไฟล์สตริงส่วนตัว
PlaySounds สาธารณะ (ไฟล์ wav สตริง) {
ชื่อไฟล์ = System.getProperty("user.dir")+wavfile;
-
โมฆะสาธารณะวิ่ง () {
ไฟล์เสียงไฟล์ = ไฟล์ใหม่ (ชื่อไฟล์);
AudioInputStream audioInputStream = null;
พยายาม {
audioInputStream = AudioSystem.getAudioInputStream(soundFile);
} จับ (ข้อยกเว้น e1) {
e1.printStackTrace();
กลับ;
-
รูปแบบ AudioFormat = audioInputStream.getFormat();
SourceDataLine auline = null;
ข้อมูล DataLine.Info = DataLine.Info ใหม่ (SourceDataLine.class, รูปแบบ);
พยายาม {
auline = (SourceDataLine) AudioSystem.getLine (ข้อมูล);
auline.open(รูปแบบ);
} จับ (ข้อยกเว้นจ) {
e.printStackTrace();
กลับ;
-
auline.start();
int nBytesRead = 0;
//这是缓冲
ไบต์ [] abData = ไบต์ใหม่ [512];
พยายาม {
ในขณะที่ (nBytesRead != -1) {
nBytesRead = audioInputStream.read(abData, 0, abData.length);
ถ้า (nBytesRead >= 0)
auline.write(abData, 0, nBytesRead);
-
} จับ (IOException จ) {
e.printStackTrace();
กลับ;
} ในที่สุด {
auline.drain();
auline.ปิด();
-
-
-
下เลดี้是一个java播放声音的应用程序,可以单次播放声音、循环播放声音
MusicPaly myMusicPlay = ใหม่ MusicPlay(getClass().getResource("/music/button.wav"));
myMusicPlay.start();//播放一次
myMusicPlay .stop();//停止
myMusicPlay .continuousStart();//循环播放
myMusicPlay .continuousStop();//停止
复制代码代码如下:
// 文件名:MuiscPlay.java
นำเข้า java.io.*;
นำเข้า java.net.URL;
นำเข้า sun.audio.*;
-
-
* @ผู้เขียน wuhuiwen
* 播放音频文件,产生音效
-
MusicPlay ระดับสาธารณะ {
AudioStream ส่วนตัวเป็น; //单次播放声音用
ContinuousAudioDataStream cas;//循环播放声音
// 构造函数
MusicPlay สาธารณะ (URL url)
-
พยายาม {
// 打ขยาย一个声音文件流作为输入
เป็น = AudioStream ใหม่ (url.openStream());
} จับ (FileNotFoundException จ) {
// TODO บล็อก catch ที่สร้างขึ้นอัตโนมัติ
e.printStackTrace();
} จับ (IOException จ) {
// TODO บล็อก catch ที่สร้างขึ้นอัตโนมัติ
e.printStackTrace();
-
-
// 一次播放 ขยายตัว
โมฆะสาธารณะเริ่มต้น ()
-
ถ้า( as==null ){
System.out.println("ไม่ได้สร้างวัตถุ AudioStream!");
กลับ;
}อื่น{
AudioPlayer.player.start (เป็น);
-
-
// 一次播放 停止
โมฆะสาธารณะหยุด ()
-
ถ้า( as==null ){
System.out.println("ไม่ได้สร้างวัตถุ AudioStream!");
กลับ;
}อื่น{
AudioPlayer.player.stop (เป็น);
-
-
// 循环播放 餋
โมฆะสาธารณะอย่างต่อเนื่องStart()
-
// สร้างแหล่งข้อมูล AudioData
ข้อมูล AudioData = null;
พยายาม {
ข้อมูล = as.getData();
} จับ (IOException จ) {
// TODO บล็อก catch ที่สร้างขึ้นอัตโนมัติ
e.printStackTrace();
-
// สร้าง ContinuationAudioDataStream
cas = ContinueAudioDataStream ใหม่ (ข้อมูล);
// เล่นเสียง
AudioPlayer.player.start(cas);
-
// 循环播放 停止
โมฆะสาธารณะอย่างต่อเนื่องStop()
-
ถ้า (cas != null)
-
AudioPlayer.player.stop (cas);
-
-
-