-2
我已经尝试了几十个教程,但我一直无法让他们工作。我只想要一个.wav文件在我的应用程序的背景中播放。如何在Java中播放.wav文件?
我已经尝试了几十个教程,但我一直无法让他们工作。我只想要一个.wav文件在我的应用程序的背景中播放。如何在Java中播放.wav文件?
参见:How to Play .wav File with JButton?
public void playSound(String soundName)
{
try
{
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(soundName).getAbsoluteFile());
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start();
}
catch(Exception ex)
{
System.out.println("Error with playing sound.");
ex.printStackTrace();
}
}
可否请您尝试以下?
public class PlayAudio {
private AudioInputStream inputStream;
private AudioFormat format;
private SourceDataLine sourceDataLine;
private File file;
private final int BUFFER_SIZE = 128000;
public void playSound(String filename) throws Exception {
String strFilename = filename;
file = new File(strFilename);
inputStream = AudioSystem.getAudioInputStream(file);
format = inputStream.getFormat();
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
sourceDataLine = (SourceDataLine) AudioSystem.getLine(info);
sourceDataLine.open(format);
sourceDataLine.start();
int nBytesRead = 0;
byte[] abData = new byte[BUFFER_SIZE];
while (nBytesRead != -1) {
try {
nBytesRead = inputStream.read(abData, 0, abData.length);
} catch (IOException e) {
e.printStackTrace();
}
if (nBytesRead >= 0) {
@SuppressWarnings("unused")
int nBytesWritten = sourceDataLine.write(abData, 0, nBytesRead);
}
}
sourceDataLine.drain();
sourceDataLine.close();
}
}
如果你已经尝试过“几十个东西”,想必你能告诉我们究竟那些“数十名”是如此,我们不只是一次又一次的告诉你同样的事情。 – Dragondraikk