Как убрать мерцание главного окна в начале видео в Javafx? - PullRequest
0 голосов
/ 19 января 2019

Я делаю приложение с помощью JavaFX и Scene Builder. У меня есть полноэкранное видео до начала моей аппликации. Так что это своего рода вступление для моей аппликации.

Видео имеет тот же фон, что и моя основная сцена.

Проблема в том, что у меня эффект мерцания в самом начале, когда я запускаю приложение. Кнопки и текст в главном окне появляются в течение примерно половины секунды, а затем начинается мое видео.

Как удалить или скрыть этот эффект?

Пожалуйста, проверьте эту ссылку для более ясного понимания моей проблемы

Видео

Основной класс:

public class Main extends Application {


public static void main(String[] args) {
launch(args);
}

  @Override
  public void start(Stage primaryStage) throws Exception {

  try {

  FXMLLoader loader = new FXMLLoader(getClass().getResource("fxml/card.fxml"));
  Parent root = (Parent) loader.load();

  Scene scene = new Scene(root, 1600, 600);
  primaryStage.setScene(scene);
  scene.getStylesheets().add(getClass().getResource("style.css").toExternalForm());
  primaryStage.initStyle(StageStyle.UNDECORATED);
  primaryStage.setMaximized(true);
  primaryStage.setResizable(true);

  primaryStage.getIcons().add(new Image("logo-icon.png"));
  primaryStage.show();      


   } catch (Exception e) {
    e.printStackTrace();
   }

  }

}

Контроллер, куда я помещаю все кнопки и текст. У меня также есть видео здесь:

public class Controller implements Initializable {

@FXML  private AnchorPane mainAnchor, anchorRow,  randomCard, randomCardBack, previewCard, bolt1;
@FXML  private StackPane hBoxCat0;
@FXML  private Button btnPalette, btnFont, btnQuestCards, btnNonQuestCards;
@FXML  private ToggleButton btnPref1, btnPref2, btnPref3, btnPref4, btnPref5, btnPref6, btnPref7, btnPref8;
@FXML  private Label lb_randomCard, lb_randomCardBack, answerID, lb_previewCard, category1, category2, category3, category4, category5, category6, category7, category8;
@FXML  private ToggleGroup group;
@FXML  private JFXColorPicker colorPickerCategory;
@FXML  private Rectangle rectRandom, rectRandomBack;
@FXML  private MediaView media;


private MediaPlayer mp;

private static final String MEDIA_URL = "intro.mp4";

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

mp = new MediaPlayer(new Media(this.getClass().getResource(MEDIA_URL).toExternalForm()));
media.setMediaPlayer(mp);
media.setSmooth(true);
mp.setAutoPlay(true);

Timeline tm = new Timeline(new KeyFrame(Duration.millis(3000), new KeyValue(media.opacityProperty(),  0.0)));
tm.setDelay(Duration.millis(5500));
tm.play();    

addQuestionsToArrayCat1();
addAnswersToArrayCat1();
addSentencesToArray();
matchSentences();   

  }

}
...