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

时间:2017-10-20 18:06:35

标签: java javafx scenebuilder

我正在尝试使用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) {


}

1 个答案:

答案 0 :(得分:0)

只需停止上一个音频,例如

SET PATH=%PATH%;c:\mingw\bin
C:\CodeBlocks\codeblocks.exe