启动该应用程序时,会直接播放一个介绍性视频,
我有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和工件构建进行了测试,在视频结束后不会触发功能,结果相同
关于为什么会发生此问题的任何解释都将有很大帮助
预先感谢