почему статус javafx mediaplayer иногда возвращается неизвестно? - PullRequest
0 голосов
/ 26 апреля 2018

Сначала я прошу прощения за мой плохой английский ...

Я сделал приложение Media Player с Javafx.

этот проигрыватель может получать мультимедийные файлы.и воспроизводить файлы вне всех ограничений.

это работает хорошо.но иногда не работает ..

это не ошибка носителя.это ошибка медиаплеера.

сообщение об ошибке: «mediaPlayer Unknown, media Invalid ..» why.??

Я воспроизводил один и тот же видеофайл (1920 * 1080), иногда работал, а иногда не работал..

а javafx зависит от ОС ??Плеер отлично работает на компьютере windown7, но у игрока есть эта ошибка на компьютере windown10 ...

, пожалуйста, дайте мне совет ..

MediaPlayer mediaPlayer = null;
Stage stage = new Stage();
AnchorPane pane = new AnchorPane();
Scene scene = new Scene(pane);

MediaView mediaView = new MediaView();
int mNextFileIndex = -1;
List<File> fileLists = new ArrayList<>();
Media media;

Метод воспроизведения медиаплеера

public void playNextMedia() {

    if (mediaPlayer != null) {
        mediaPlayer.dispose();
        mediaView.setMediaPlayer(null);
       }

   mNextFileIndex = (mNextFileIndex + 1) % fileLists.size();
   media =new Media(fileLists.get(mNextFileIndex).toURI().toString());

    media.setOnError(()-> {
        MainApp.makeLog("media error");
    });
    mediaPlayer = new MediaPlayer(media);

    mediaView.setMediaPlayer(mediaPlayer);


    mediaPlayer.setOnReady(() -> {
        mediaPlayer.play();
    });

    mediaPlayer.setOnEndOfMedia(() -> {
        playNextMedia();

    });

    mediaPlayer.setOnError(() -> {
      systom.out.println("mediaPlayer error");
      Systeom.out.println(mediaPlayer.getError().getMessage()); 
      playNextMedia();
    });

}

Метод кнопки

@FXML
private void playMedia(ActionEvent event) {

    mNextFileIndex = -1;

        FileChooser fileChooser = new FileChooser();
        fileChooser.getExtensionFilters().addAll(new 
        FileChooser.ExtensionFilter("Select a File (*.mp4)", "*.mp4"),
        new FileChooser.ExtensionFilter("All Files", "*.*"));

        List<File> list = fileChooser.showOpenMultipleDialog(null);

        if (list != null) {
           for (File file : list) {
              fileLists.add(file)
            }

        playNextMedia();

        pane.getChildren().add(mediaView);
        stage.setScene(scene);
        stage.show();
 }
...