如何在 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
我正在尝试使用 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