我是一个刚来的学生!有些问题,不知能在这得到帮助否?Calendar calender==Calendar.getInstance();
while(true){System.out.println("时间hehe:"+calendar.get(Calendar.YEAR)+" "+calendar.get(Calendar.MONTH)+" "+calendar.get(Calendar.DAY_OF_MONTH)+" "+calendar.get(Calendar.HOUR_OF_DAY)+" "+calendar.get(Calendar.MINUTE)+" "+calendar.get(Calendar.SECOND));
}
为什么一直结果是输出相同的时间日期?而不随系统不断改变,该怎么变啊?
还有个问题就是在java中怎么播放一个本地.wav音频文件?哪个类和什么方法!
while(true){System.out.println("时间hehe:"+calendar.get(Calendar.YEAR)+" "+calendar.get(Calendar.MONTH)+" "+calendar.get(Calendar.DAY_OF_MONTH)+" "+calendar.get(Calendar.HOUR_OF_DAY)+" "+calendar.get(Calendar.MINUTE)+" "+calendar.get(Calendar.SECOND));
}
为什么一直结果是输出相同的时间日期?而不随系统不断改变,该怎么变啊?
还有个问题就是在java中怎么播放一个本地.wav音频文件?哪个类和什么方法!
calender = Calendar.getInstance();
System.out.println("时间hehe:" + calender.get(Calendar.YEAR) + " "
+ calender.get(Calendar.MONTH) + " "
+ calender.get(Calendar.DAY_OF_MONTH) + " "
+ calender.get(Calendar.HOUR_OF_DAY) + " "
+ calender.get(Calendar.MINUTE) + " "
+ calender.get(Calendar.SECOND));
}
将Calendar.getInstance();放到循环里面不就好了吗?
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.UnsupportedAudioFileException;public class Test { private AudioFormat format; private byte[] samples; public static void main(String args[]) throws Exception {
Test sound = new Test("chimes.wav");
InputStream stream = new ByteArrayInputStream(sound.getSamples());
// play the sound
sound.play(stream);
// exit
System.exit(0);
} public Test(String filename) {
try {
// open the audio input stream
AudioInputStream stream = AudioSystem.getAudioInputStream(new File(
filename));
format = stream.getFormat();
// get the audio samples
samples = getSamples(stream);
}
catch (UnsupportedAudioFileException ex) {
ex.printStackTrace();
}
catch (IOException ex) {
ex.printStackTrace();
}
} public byte[] getSamples() {
return samples;
} private byte[] getSamples(AudioInputStream audioStream) {
// get the number of bytes to read
int length = (int) (audioStream.getFrameLength() * format
.getFrameSize()); // read the entire stream
byte[] samples = new byte[length];
DataInputStream is = new DataInputStream(audioStream);
try {
is.readFully(samples);
}
catch (IOException ex) {
ex.printStackTrace();
} // return the samples
return samples;
} public void play(InputStream source) { // use a short, 100ms (1/10th sec) buffer for real-time
// change to the sound stream
int bufferSize = format.getFrameSize()
* Math.round(format.getSampleRate() / 10);
byte[] buffer = new byte[bufferSize]; // create a line to play to
SourceDataLine line;
try {
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
line = (SourceDataLine) AudioSystem.getLine(info);
line.open(format, bufferSize);
}
catch (LineUnavailableException ex) {
ex.printStackTrace();
return;
} // start the line
line.start(); // copy data to the line
try {
int numBytesRead = 0;
while (numBytesRead != -1) {
numBytesRead = source.read(buffer, 0, buffer.length);
if (numBytesRead != -1) {
line.write(buffer, 0, numBytesRead);
}
}
}
catch (IOException ex) {
ex.printStackTrace();
} // wait until all data is played, then close the line
line.drain();
line.close(); }}