如何在 JavaFX 中停止以前的歌曲

How to stop previously song in JavaFX

我正在尝试使用 JavaFX 开发音频播放器。所以,到目前为止,我的音频播放器具有这些基本功能——打开、播放、暂停、停止、音量滑块和搜索栏。 这是问题所在,当我 运行 应用程序并打开任何歌曲时,它就会开始播放。但是当我打开任何其他使用(使用 FileChooser 并且在后台,上一首歌曲仍在播放)时,它也开始与上一首歌曲一起播放(它一直在播放)。那么,我该怎么做 - 当我播放新歌时,上一首停止。这是我的 FXMLController 代码:

 public void open(ActionEvent e){


    FileChooser fc = new FileChooser();
    selectedFile = fc.showOpenDialog(null);

    if(selectedFile != null){

    String path = selectedFile.getAbsolutePath();

    path = path.replace("\","/");
    me = new Media(new File(path).toURI().toString());
    mp = new MediaPlayer(me);
    mv.setMediaPlayer(mp);
    musicBox.setText(path); 
    volumeSlider.setValue(0.7 * 100);
    volumeSlider.valueProperty().addListener((Observable observable) -> {
    mp.setVolume(volumeSlider.getValue()/100);
    });

    mp.currentTimeProperty().addListener((ObservableValue<? extends Duration> observable, Duration oldValue, Duration newValue) -> {
        seekSlider.setValue(newValue.toSeconds());
    });

    seekSlider.setOnMouseClicked((MouseEvent event) -> {
        mp.seek(Duration.seconds(seekSlider.getValue()));
    });

    mp.play();

    }
}
public void play(ActionEvent e){
mp.play();
}

public void pause(ActionEvent e){
mp.pause();
}

public void stop(ActionEvent e){
mp.stop();
}


@Override
public void initialize(URL url, ResourceBundle rb) {


}

把之前的音频停掉就好了,赞

if(selectedFile != null){
    String path = selectedFile.getAbsolutePath();
    if(mp!=null) mp.stop();
    //rest of code