站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题作了个定时器,怎么让他到时间了发声音出来啊

作了个定时器,怎么让他到时间了发声音出来啊

摘要: 作了个定时器,怎么让他到时间了发声音出来啊


作了个定时器,怎么让他到时间了发声音出来啊


timer


/a
?


我用了thread,都弄好了,就是不会发声音


给你一段播放声音的代码学习一下:


import javax.sound.sampled.*;
import java.io.*;
import java.net.*;


class PlaySound {


public PlaySound(String pos) {
try {
// 创建一个你要播放的文件
AudioInputStream stream = AudioSystem.getAudioInputStream(new File(pos)); //在此改成你的文件路径


AudioFormat format = stream.getFormat();
if (format.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) {
format = new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED,
format.getSampleRate(),
format.getSampleSizeInBits()*2,
format.getChannels(),
format.getFrameSize()*2,
format.getFrameRate(),
true); // big endian
stream = AudioSystem.getAudioInputStream(format, stream);
}

// Create line
SourceDataLine.Info info = new DataLine.Info(
SourceDataLine.class, stream.getFormat(),
((int)stream.getFrameLength()*format.getFrameSize()));
SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info);
line.open(stream.getFormat());
line.start();

// Continuously read and play chunks of audio
int numRead = 0;
byte[] buf = new byte[line.getBufferSize()];
while ((numRead = stream.read(buf, 0, buf.length)) >= 0) {
int offset = 0;
while (offset < numRead) {
offset += line.write(buf, offset, numRead-offset);
}
}
line.drain();
line.stop();
stream.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (LineUnavailableException e) {
e.printStackTrace();
} catch (UnsupportedAudioFileException e) {
e.printStackTrace();
}

}


}


↑返回目录
前一篇: 请教大家一个匿名内部类的程序!
后一篇: jbutton的图标为什么不显示呢?