为什么javafx mediaplayer状态有时会回归未知?

时间:2018-04-26 00:39:54

标签: javafx media-player

首先,我很抱歉我的英语不好......

我用Javafx制作了媒体播放器应用程序。

此播放器可以获取多个文件媒体。并播放超出所有限制的文件。

效果很好。但有时候不起作用..

这不是媒体错误。这是媒体播放器的错误。

错误信息是'mediaPlayer Unknown,media Invalid ..'为什么。??

我播放了相同的视频文件(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();
 }

0 个答案:

没有答案