为什么 mediaPlayer class 在这种情况下不起作用?
Why does the mediaPlayer class not work in this case?
所以我正在尝试创建我自己的 mp3 播放器。
mediaPlayer.play() 方法有效但暂停无效。
有人可以帮我吗?
public void audioPlayerButtons(ActionEvent actionEvent) {
String bip = getClass().getResource("Songs/Sing.m4a").toExternalForm();
Media hit = new Media(bip);
MediaPlayer mediaPlayer = new MediaPlayer(hit);
if (actionEvent.getSource() == playbtn) {
mediaPlayer.play();
nowPlaying.setText("Now Playing");
songPlayingName.setText("Sing");
} else if (actionEvent.getSource() == pausebtn) {
mediaPlayer.pause();
} else if (actionEvent.getSource() == forwardbtn) {
mediaPlayer.stop();
} else if (actionEvent.getSource() == backwardbtn) {
mediaPlayer.isAutoPlay();
}
}
您似乎正在对 MediaPlayer 的第二个实例调用暂停。
...
MediaPlayer mediaPlayer = new MediaPlayer(hit);
// each time you hit a button, you create a new MediaPlayer
if (actionEvent.getSource() == playbtn) {
mediaPlayer.play();
// first time, you call play, so it plays
nowPlaying.setText("Now Playing");
songPlayingName.setText("Sing");
} else if (actionEvent.getSource() == pausebtn) {
// pause does work, but it is not the same instance that is playing
mediaPlayer.pause();
}
...
您需要在该事件范围之外实例化 mediaPlayer。像这样尝试:
// instance variables
String bip = getClass().getResource("Songs/Sing.m4a").toExternalForm();
Media hit = new Media(bip);
MediaPlayer mediaPlayer = new MediaPlayer(hit);
public void audioPlayerButtons(ActionEvent actionEvent) {
if (actionEvent.getSource() == playbtn) {
mediaPlayer.play();
nowPlaying.setText("Now Playing");
songPlayingName.setText("Sing");
} else if (actionEvent.getSource() == pausebtn) {
mediaPlayer.pause();
} else if (actionEvent.getSource() == forwardbtn) {
mediaPlayer.stop();
} else if (actionEvent.getSource() == backwardbtn) {
mediaPlayer.isAutoPlay();
}
}
所以我正在尝试创建我自己的 mp3 播放器。 mediaPlayer.play() 方法有效但暂停无效。 有人可以帮我吗?
public void audioPlayerButtons(ActionEvent actionEvent) {
String bip = getClass().getResource("Songs/Sing.m4a").toExternalForm();
Media hit = new Media(bip);
MediaPlayer mediaPlayer = new MediaPlayer(hit);
if (actionEvent.getSource() == playbtn) {
mediaPlayer.play();
nowPlaying.setText("Now Playing");
songPlayingName.setText("Sing");
} else if (actionEvent.getSource() == pausebtn) {
mediaPlayer.pause();
} else if (actionEvent.getSource() == forwardbtn) {
mediaPlayer.stop();
} else if (actionEvent.getSource() == backwardbtn) {
mediaPlayer.isAutoPlay();
}
}
您似乎正在对 MediaPlayer 的第二个实例调用暂停。
...
MediaPlayer mediaPlayer = new MediaPlayer(hit);
// each time you hit a button, you create a new MediaPlayer
if (actionEvent.getSource() == playbtn) {
mediaPlayer.play();
// first time, you call play, so it plays
nowPlaying.setText("Now Playing");
songPlayingName.setText("Sing");
} else if (actionEvent.getSource() == pausebtn) {
// pause does work, but it is not the same instance that is playing
mediaPlayer.pause();
}
...
您需要在该事件范围之外实例化 mediaPlayer。像这样尝试:
// instance variables
String bip = getClass().getResource("Songs/Sing.m4a").toExternalForm();
Media hit = new Media(bip);
MediaPlayer mediaPlayer = new MediaPlayer(hit);
public void audioPlayerButtons(ActionEvent actionEvent) {
if (actionEvent.getSource() == playbtn) {
mediaPlayer.play();
nowPlaying.setText("Now Playing");
songPlayingName.setText("Sing");
} else if (actionEvent.getSource() == pausebtn) {
mediaPlayer.pause();
} else if (actionEvent.getSource() == forwardbtn) {
mediaPlayer.stop();
} else if (actionEvent.getSource() == backwardbtn) {
mediaPlayer.isAutoPlay();
}
}