MediaPlayer не воспроизводится до вызова seek () - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь создать простой mp3-плеер в javafx, но звук не воспроизводится, пока я не вызову метод seek () для экземпляра MediaPlayer.

public class Main extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    private MediaPlayer mediaPlayer;

    @Override
    public void start(Stage stage) throws Exception {
        Media media = new Media(getClass().getResource("/test.mp3").toURI().toString());
        mediaPlayer = new MediaPlayer(media);

        mediaPlayer.statusProperty().addListener((observable, oldValue, newValue) -> {
            System.out.println(newValue);
            if(newValue == MediaPlayer.Status.READY) {
                mediaPlayer.setAutoPlay(true);
                mediaPlayer.play();
            }
        });
    }
}

Вывод на консоль:

READY
PLAYING

но проигрыватель не начинает воспроизводить аудио.Когда я добавляю другой метод if с методом seek (), начинается воспроизведение.

mediaPlayer.statusProperty().addListener((observable, oldValue, newValue) -> {
    System.out.println(newValue);
    if(newValue == MediaPlayer.Status.READY) {
        mediaPlayer.setAutoPlay(true);
        mediaPlayer.play();
    } else if(newValue == MediaPlayer.Status.PLAYING) {
        mediaPlayer.seek(Duration.ONE);
    }
});

Это ошибка в JavaFX или я что-то упустил?Я использую JDK11, принять сборку с openjfx на Mac.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...