如何使用Java播放wav文件?
问题描述:
我想播放一个wav文件,并在我Google搜索后发现这个脚本,但它不起作用。 (它没有抛出任何异常,也有编制问题)如何使用Java播放wav文件?
import java.io.File;
import films.Film;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
public class MusicStorage {
/**
* Opens a wav file and plays it
* @param args
*/
public void play(Film song) {
try {
Clip sound = AudioSystem.getClip();
sound.open(AudioSystem.getAudioInputStream(new File(song.getClip())));
sound.start();
while (sound.isRunning())
Thread.sleep(1000);
sound.close();
} catch (Exception e) {
System.out.println("Whatever" + e);
}
}
}
import audio.MusicStorage;
import films.Film;
public class Aplication {
private static Film gladiator = new Film("Gladiator", "gladiator.wav");
private static MusicStorage storage = new MusicStorage();
public static void main(String[] args) {
storage.play(gladiator);
}
}
public class Film {
private String name;
private String clip;
public Film(String name, String clip) {
this.name = name;
this.clip = clip;
}
public String getClip() {
return clip;
}
public String getName() {
return name;
}
}
我添加了所有,我有这样的代码,我希望这将是明确的解决我的问题
答
只需卸下while循环从你的代码,它应该是固定的。 while循环正在使线程休眠,因此无法播放音频文件。
public void play(Film song) {
try {
Clip sound = AudioSystem.getClip();
sound.open(AudioSystem.getAudioInputStream(new File(song.getClip())));
sound.start();
} catch (Exception e) {
System.out.println("Whatever" + e);
}
}
}
哪里是你打电话播放(电影歌曲)的主要方法?请显示所有相关代码 – smoggers
(while sound.isRunning())应该可以工作! –
无计可施。您提供的代码中没有任何内容可以运行任何内容。 –