JavaFX音频文件路径

时间:2018-11-28 12:04:08

标签: java javafx java-audio

https://imgur.com/a/6gNa89z将会解决我的问题

当程序中发生某些动作时,我只想播放一些音频文件。问题是克隆回购协议后,我的团队和我的文件夹结构不同。对我来说,我需要给它一个带有SourceCode的路径,而他们需要没有此术语的路径。而且我想将资源文件夹外包到src之外。

对我来说,代码必须是:

aux.playSound("SourceCode/AnwendungGruppeAfx/src/application/resources/systems-online.wav");

但是对于他们来说,需要像main.java中的示例一样。否则,它会导致错误: 引起原因:MediaException:MEDIA_UNAVAILABLE:C:\Users\david\git\Repo_Gruppe_A\AnwendungGruppeAfx\src\application\resources\systems-online.wav 对于我的队友来说,他们在输入SourceCode / SourceCode时遇到了相同的错误。

AudioPlayer.java:

public class AudioPlayer {

    public void playSound(String file) {
        String musicFile = file;
        AudioClip audio = new AudioClip(new File(musicFile).toURI().toString());
        audio.play();
    }
}

例如在程序开头的Main.java中:

public class Main extends Application {

    AudioPlayer aux = new AudioPlayer();

    @Override
    public void start(Stage primaryStage) throws Exception {
        aux.playSound("AnwendungGruppeAfx/src/application/resources/systems-online.wav");
        Parent root = FXMLLoader.load(getClass().getResource("/application/controller/LoginController/Login.fxml"));
        Scene scene = new Scene(root);

        primaryStage.getIcons().add(new Image("/application/resources/icons8-blockchain-technology-64.png"));
        primaryStage.setTitle("SemestervErwaltungsPlan");
        primaryStage.setResizable(false);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

0 个答案:

没有答案