java—在javafx项目中播放音乐的方法不会导致播放音乐

rryofs0p  于 2021-07-11  发布在  Java
关注(0)|答案(1)|浏览(327)

我创建了一个在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();
        }
    }
}
dfuffjeb

dfuffjeb1#

您没有将音频输入流与剪辑相关联。
尝试:

AudioInputStream audioInput = AudioSystem.getAudioInputStream(musicPath);
        Clip clip = AudioSystem.getClip();
        clip.open(audioinput);
        clip.start();

相关问题