播放声音的类
معلومات المنتج:
استيراد 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.SourceDataLine;
// 播放声音的类
الطبقة العامة PlaySounds تمتد الموضوع {
اسم ملف سلسلة خاص؛
PlaySounds العامة (سلسلة wavfile) {
filename = System.getProperty("user.dir")+wavfile;
}
تشغيل الفراغ العام () {
ملف soundFile = ملف جديد (اسم الملف)؛
AudioInputStream audioInputStream = null;
يحاول {
audioInputStream = AudioSystem.getAudioInputStream(soundFile);
} قبض (الاستثناء e1) {
e1.printStackTrace();
يعود؛
}
تنسيق تنسيق الصوت = audioInputStream.getFormat();
SourceDataLine auline = null;
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
يحاول {
auline = (SourceDataLine) AudioSystem.getLine(info);
auline.open(format);
} قبض (الاستثناء ه) {
printStackTrace();
يعود؛
}
auline.start();
int nBytesRead = 0;
//这是缓冲
byte[] abData = new byte[512];
يحاول {
بينما (nBytesRead != -1) {
nBytesRead = audioInputStream.read(abData, 0, abData. length);
إذا (nBytesRead >= 0)
auline.write(abData, 0, nBytesRead);
}
} قبض (IOException ه) {
printStackTrace();
يعود؛
} أخيراً {
auline.drain();
auline. Close();
}
}
}
لا داعي للقلق بشأن استخدام لغة جافا أو استخدام لغة جافا
MusicPaly myMusicPlay = new MusicPlay(getClass().getResource("/music/button.wav"));
myMusicPlay.start();//播放一次
myMusicPlay .stop();//التشغيل
myMusicPlay .continiousStart();//循环播放
myMusicPlay .continiousStop();//التشغيل
معلومات المنتج:
// المصدر:MuiscPlay.java
استيراد java.io.*;
استيراد java.net.URL؛
import sun.audio.*;
/**
*
* @ المؤلف ووهويوين
* كل ما عليك فعله هو اختيار ما تريد
*/
فئة عامة MusicPlay {
البث الصوتي الخاص كـ؛ //单次播放声音用
ContiniousAudioDataStream cas;//循环播放声音
// 构造函数
تشغيل الموسيقى العام (URL url)
{
يحاول {
//الأمر متروك لكم
as = new AudioStream (url.openStream());
} قبض على (FileNotFoundException ه) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
} قبض (IOException ه) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
}
}
// 一次播放 开始
بداية الفراغ العام ()
{
إذا (كما ==خالية){
System.out.println("لم يتم إنشاء كائن AudioStream!");
يعود؛
}آخر{
AudioPlayer.player.start (as);
}
}
// 一次播放 停止
توقف الفراغ العام ()
{
إذا (كما ==خالية){
System.out.println("لم يتم إنشاء كائن AudioStream!");
يعود؛
}آخر{
AudioPlayer.player.stop(as);
}
}
// 循环播放 开始
الفراغ العام المستمرStart ()
{
// إنشاء مصدر بيانات الصوت.
بيانات البيانات الصوتية = فارغة؛
يحاول {
البيانات = as.getData();
} قبض (IOException ه) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
}
// إنشاء ContiniousAudioDataStream.
cas = new ContiniousAudioDataStream (data)؛
// تشغيل الصوت.
AudioPlayer.player.start(cas);
}
// 循环播放 停止
الفراغ العام المستمرStop ()
{
إذا (كاس != فارغة)
{
AudioPlayer.player.stop (cas);
}
}
}