javafx媒体播放器视频结尾不起作用

时间:2018-10-01 01:51:05

标签: java javafx

启动该应用程序时,会直接播放一个介绍性视频,

我有2种情况:

  1. 观看完整的介绍,然后自动重定向到另一个页面
  2. 单击“跳过”按钮可立即重定向到另一个页面

当我从IDE运行应用程序时,这两种情况都可以正常工作

但是当将应用打包为jar格式时,第一种情况将无法正常工作(有关更多详细信息,请参见代码)

班级:

public class SplashScreenController implements Initializable {


    @FXML
    private HBox introView;



    @FXML
    private Label btSkipIntro;


    MediaPlayer player;

   @Override
   public void initialize(URL location, ResourceBundle resources) {



      // INTRO VIDEO PROCESS ------------------------
      player = new MediaPlayer(new Media(getClass().getResource("/Images/SeffirIntro.mp4").toExternalForm()));
      MediaView mediaView = new MediaView(player);

      mediaView.setPreserveRatio(true);
      mediaView.setSmooth(true);

     introView.getChildren().add(mediaView);

     System.out.println("Started");

     player.play();

     player.setOnEndOfMedia(() -> {

          System.out.println("Ended");

          try {
               // Code to automatically redirect to another page
               Entry.viewNavigator.openView("/Views/LanguageView.fxml");
          } catch (IOException e) {
               e.printStackTrace();
        }

    });



  @FXML  // When the skip button clicked
  public void skipClicked() throws IOException{
      System.out.println("Skipped");
      player.stop();
      Entry.viewNavigator.openView("/Views/LanguageView.fxml");

  }

在我的IDE中测试了(player.setOnEndOfMedia lambda函数可以漂亮地执行),但是当jar执行该函数时,永远不会访问该函数。

JAR创作已通过maven和工件构建进行了测试,在视频结束后不会触发功能,结果相同

关于为什么会发生此问题的任何解释都将有很大帮助

预先感谢

0 个答案:

没有答案