我想使用下面的代码在Java中播放声音。声音是WAV格式的,所以我认为这段代码应该可以正常工作,但是与其播放声音,它什么也没做。我的控制台上甚至没有错误。因此有人可以帮助我使此代码播放声音。 (此声音包含在我的src文件的一个包中)
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
try {
Clip clip = AudioSystem.getClip();
File file = new File("C:\\Users\\Jovan\\Desktop\\song.wav");
AudioInputStream inputStream = AudioSystem.getAudioInputStream(file);
clip.open(inputStream);
clip.start();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
最佳答案
您必须等待剪辑播放并结束。您也可以创建一些侦听器,但这更加复杂。当剪辑播放完毕(isActive()为false)时,您结束。
public class P {
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
try {
System.out.println("started");
Clip clip = AudioSystem.getClip();
File file = new File(".......................wav");
AudioInputStream inputStream = AudioSystem.getAudioInputStream(file);
clip.open(inputStream);
clip.start();
while(clip.isOpen()) {
try { Thread.sleep(2000); } catch(InterruptedException ie) {}
if(!clip.isActive()) break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}
关于java - 使用剪辑无法在Java中播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48735326/