我创建了一个在javafx游戏中尝试播放音乐的方法,我放置了一行打印的代码来声明它是否正在播放它打印到控制台的文件,正确地声明它正在播放音乐文件,除非我没有听到任何音乐播放。
游戏运行良好,音乐文件位于项目文件夹的适当位置,我调用了 method music("song.wav");
在start方法内部。所有的import语句都在那里,场景也可以播放出来。
// called inside start method
music("song.wav");
方法是这样的
private void music(String musicLocation) {
try {
//take WAV file as input for background music
File musicPath = new File(musicLocation);
//checks if the music file exists in project's path
if (musicPath.exists()) {
System.out.println("The game is playing: " + musicPath);
AudioInputStream audioInput = AudioSystem.getAudioInputStream(musicPath);
Clip clip = AudioSystem.getClip();
clip.start();
clip.loop(Clip.LOOP_CONTINUOUSLY);
} else {
System.out.println("Can't find file");
}
} catch (UnsupportedAudioFileException ex) {
System.out.println("The specified audio file is not supported.");
ex.printStackTrace();
} catch (LineUnavailableException ex) {
System.out.println("Audio line for playing back is unavailable.");
ex.printStackTrace();
} catch (IOException ex) {
System.out.println("Error playing the audio file.");
ex.printStackTrace();
}
}
}
1条答案
按热度按时间dfuffjeb1#
您没有将音频输入流与剪辑相关联。
尝试: