Захват времени медиа-файла с помощью setOnReady случайным образом прекращает выполнение - PullRequest
0 голосов
/ 09 января 2019

я пытаюсь получить время медиафайла mp4 с помощью средства выбора файлов, а также URL-адреса и поместить их в 2 различных текстовых поля (с помощью FXML), часть URL-адреса работает нормально, но у меня возникла проблема со временем , Вот код, который у меня есть для получения времени.

private void setTimeField(File selectedFile) 
{
    Media mediaFile = new Media(selectedFile.toURI().toString());
    MediaPlayer mediaPlayer = new MediaPlayer(mediaFile);
    mediaPlayer.setOnReady(new Runnable()
        {
            @Override
            public void run()
            {
                int timeOfVid = (int) mediaFile.getDuration().toSeconds();
                txtTime.setText(model.getTimeInString(timeOfVid));
            }
        }      
    );
}

Проблема в том, что иногда он устанавливает txtTime, а иногда - нет, и это происходит очень случайно. Используя SOUT, я понял, что когда это происходит, он даже не выполняет ни одной строки кода внутри run ().

...