クラウドインフラ構築記

現在AWSの構築支援に携わっております。今注視しているのは、GKE、BigQuery、Google Dataflowなどサービスを展開しているGoolge Cloud Platformです。

MediaView(JavaFX)のタイマー切替の際の動作


JavaFXのMediaViewを規定した時間で別の動画ファイルに切り替える際、mediaPlayer.stop()をしないと、切替前に動画がバックグラウンドで流れたままになってしまう。(音声だけ切替前の動画の音声が聞こえてきました。)リソースも残ったままになっていると思われます。


private Timeline movieTimer = TimelineBuilder.create()
 .cycleCount(Timeline.INDEFINITE)
 .keyFrames(new KeyFrame(
 new Duration(120000),//単位 ミニ秒 2分 1000(1s) x 60 x2
 new EventHandler(){
 public void handle(Event arg0) {

//
 leftMovieIndex++;

 if (leftMovieIndex >= leftMediasArray.length) {
 leftMovieIndex = 0;
 }
 leftImageIndex++;
 mediaPlayer.stop();

 FlowPane flowPane = (FlowPane)pane.getChildren().get(0);
 mediaPlayer = new MediaPlayer(new Media(media_folder+leftMediasArray[leftMovieIndex]));
 mediaPlayer.setAutoPlay(true);

mediaPlayer.setCycleCount( MediaPlayer.INDEFINITE ); // 繰り返し再生

 MediaView mediaView = new MediaView();
 mediaView.setFitWidth(700.0);
 mediaView.setFitHeight(400.0);
 mediaView.setMediaPlayer(mediaPlayer);
 flowPane.getChildren().remove(0);
 flowPane.getChildren().add(mediaView);


 }

}
 )).build();

コメントは受け付けていません。