From 0d57127d6400cd6f6f567f8902bfebfe21f2c9f2 Mon Sep 17 00:00:00 2001 From: Seil0 Date: Tue, 21 Apr 2020 23:37:02 +0200 Subject: [PATCH] added replay and forward 10 sec button * player ui rework [part 1] --- .../HomeFlix/application/Main.java | 6 +- .../HomeFlix/player/PlayerController.java | 55 +++++++----- src/main/resources/fxml/PlayerWindow.fxml | 79 +++++++++++++----- .../icons/baseline_forward_10_white_48dp.png | Bin 0 -> 617 bytes .../icons/baseline_fullscreen_black_48dp.png | Bin 109 -> 0 bytes .../baseline_fullscreen_exit_black_48dp.png | Bin 111 -> 0 bytes .../baseline_fullscreen_exit_white_48dp.png | Bin 0 -> 101 bytes .../icons/baseline_fullscreen_white_48dp.png | Bin 0 -> 101 bytes .../icons/baseline_pause_black_48dp.png | Bin 107 -> 0 bytes .../icons/baseline_pause_white_48dp.png | Bin 0 -> 90 bytes .../icons/baseline_play_arrow_white_48dp.png | Bin 0 -> 264 bytes .../icons/baseline_replay_10_white_48dp.png | Bin 0 -> 616 bytes .../locals/HomeFlix-Local_de_DE.properties | 8 +- .../locals/HomeFlix-Local_en_US.properties | 10 +-- 14 files changed, 103 insertions(+), 55 deletions(-) create mode 100644 src/main/resources/icons/baseline_forward_10_white_48dp.png delete mode 100644 src/main/resources/icons/baseline_fullscreen_black_48dp.png delete mode 100644 src/main/resources/icons/baseline_fullscreen_exit_black_48dp.png create mode 100644 src/main/resources/icons/baseline_fullscreen_exit_white_48dp.png create mode 100644 src/main/resources/icons/baseline_fullscreen_white_48dp.png delete mode 100755 src/main/resources/icons/baseline_pause_black_48dp.png create mode 100644 src/main/resources/icons/baseline_pause_white_48dp.png create mode 100644 src/main/resources/icons/baseline_play_arrow_white_48dp.png create mode 100644 src/main/resources/icons/baseline_replay_10_white_48dp.png diff --git a/src/main/java/kellerkinder/HomeFlix/application/Main.java b/src/main/java/kellerkinder/HomeFlix/application/Main.java index 5e1a79a..d9051f1 100644 --- a/src/main/java/kellerkinder/HomeFlix/application/Main.java +++ b/src/main/java/kellerkinder/HomeFlix/application/Main.java @@ -43,9 +43,9 @@ public class Main extends Application { private MainWindowController mainWindowController; private static XMLController xmlController; private static Logger LOGGER; - public static final String version = "0.8.0"; - public static final String buildNumber = "173"; - public static final String versionName = "toothless dragon"; + public static final String version = "0.8.90"; + public static final String buildNumber = "175"; + public static final String versionName = "nimbly xlr8"; // TODO rename streamURL to mediaURL diff --git a/src/main/java/kellerkinder/HomeFlix/player/PlayerController.java b/src/main/java/kellerkinder/HomeFlix/player/PlayerController.java index 16a6871..d08cd67 100644 --- a/src/main/java/kellerkinder/HomeFlix/player/PlayerController.java +++ b/src/main/java/kellerkinder/HomeFlix/player/PlayerController.java @@ -73,7 +73,9 @@ public class PlayerController { @FXML private JFXSlider timeSlider; @FXML private JFXButton btnBack; - @FXML private JFXButton playBtn; + @FXML private JFXButton btnPlay; + @FXML private JFXButton btnReplay; + @FXML private JFXButton btnForward; @FXML private JFXButton fullscreenBtn; @FXML private JFXButton nextEpBtn; @@ -103,10 +105,10 @@ public class PlayerController { private boolean showControls = true; private boolean autoplay; - private Image playArrow = new Image("icons/baseline_play_arrow_black_48dp.png"); - private Image pause = new Image("icons/baseline_pause_black_48dp.png"); - private Image fullscreen = new Image("icons/baseline_fullscreen_black_48dp.png"); - private Image fullscreenExit = new Image("icons/baseline_fullscreen_exit_black_48dp.png"); + private Image playArrow = new Image("icons/baseline_play_arrow_white_48dp.png"); + private Image pause = new Image("icons/baseline_pause_white_48dp.png"); + private Image fullscreen = new Image("icons/baseline_fullscreen_white_48dp.png"); + private Image fullscreenExit = new Image("icons/baseline_fullscreen_exit_white_48dp.png"); /** * create a new PlayerWindow object @@ -274,11 +276,9 @@ public class PlayerController { nextEpBtn.setText(XMLController.getLocalBundle().getString("nextEpisode") + countdown + XMLController.getLocalBundle().getString("seconds")); bottomVBox.setVisible(true); - System.out.println("next episode in " + countdown + " seconds"); } else { nextEpBtn.setVisible(false); - // TODO start next episode - System.out.println("playing next episode ..."); + playNextMedia(); } } } @@ -290,18 +290,7 @@ public class PlayerController { } @FXML - void fullscreenBtnAction(ActionEvent event) { - if (player.getStage().isFullScreen()) { - player.getStage().setFullScreen(false); - fullscreenIcon.setImage(fullscreen); - } else { - player.getStage().setFullScreen(true); - fullscreenIcon.setImage(fullscreenExit); - } - } - - @FXML - void playBtnAction(ActionEvent event) { + void btnPlayAction(ActionEvent event) { if (embeddedMediaPlayer.status().isPlaying()) { embeddedMediaPlayer.controls().pause(); playIcon.setImage(playArrow); @@ -311,9 +300,31 @@ public class PlayerController { } } + @FXML + void btnReplayAction(ActionEvent event) { + embeddedMediaPlayer.controls().skipTime(-10000); + } + + @FXML + void btnForwardAction(ActionEvent event) { + embeddedMediaPlayer.controls().skipTime(10000); + } + + @FXML + void fullscreenBtnAction(ActionEvent event) { + if (player.getStage().isFullScreen()) { + player.getStage().setFullScreen(false); + fullscreenIcon.setImage(fullscreen); + } else { + player.getStage().setFullScreen(true); + fullscreenIcon.setImage(fullscreenExit); + } + } + @FXML void nextEpBtnAction(ActionEvent event) { - playNextMedia(); // TODO + nextEpBtn.setVisible(false); + playNextMedia(); } private void playNextMedia() { @@ -321,7 +332,7 @@ public class PlayerController { DBController.getInstance().setCurrentTime(media.getStreamUrl(), 0); // reset old video start time FilmTabelDataType nextMedia = DBController.getInstance().getNextEpisode(media.getTitle(), episode, season); if (nextMedia != null) { - //mediaPlayer2.stop(); + embeddedMediaPlayer.media().play(nextMedia.getStreamUrl()); media = nextMedia; autoplay = true; } diff --git a/src/main/resources/fxml/PlayerWindow.fxml b/src/main/resources/fxml/PlayerWindow.fxml index 87eec1a..0f120c4 100644 --- a/src/main/resources/fxml/PlayerWindow.fxml +++ b/src/main/resources/fxml/PlayerWindow.fxml @@ -22,7 +22,7 @@ - + @@ -49,7 +49,10 @@ - @@ -58,27 +61,61 @@ - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -86,7 +123,7 @@ - + diff --git a/src/main/resources/icons/baseline_forward_10_white_48dp.png b/src/main/resources/icons/baseline_forward_10_white_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..149672039b15d186be2c38a2955035c3c445f38c GIT binary patch literal 617 zcmV-v0+#)WP)c4OhGBqV7y`gB1Op5Mz)-+26hko-!%zgn07WrCF$_fjK`{hDQ9x1L z9)k0`W=(f(a+SwJ=$-GoTuz$Cu~Vaz>bYJ394?{2=@JT@E}_8b5(=Cyp}^@93Y;lH zARh-f#&7&VsBj4av~Y+i?nBY~_qAExZi!jFMNm>XNF2@8Ak`CNjK26uKTFq)G+o6b-ryBh*0P9p9Kav1#VGiY@@&j>hud1ctKES+4Vbu@(yxjGszw5 zL;k_gG@EfjiS629Jf6o`c z8{>jSRv21ebqjao4nHu$RP65=h8SS8aTL_l)YSX}4{omF3kJ=_00000NkvXXu0mjf D1jrYM literal 0 HcmV?d00001 diff --git a/src/main/resources/icons/baseline_fullscreen_black_48dp.png b/src/main/resources/icons/baseline_fullscreen_black_48dp.png deleted file mode 100644 index 917e418a93386a61338d7c2588985ed9805841b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}t6Hgb%kP61PS2uD3C0q}_*T{?$jEqLr9g*H)i0){4eU%4|1&-`+It_UpTX1B&t;uc GLK6VvuOPhu diff --git a/src/main/resources/icons/baseline_fullscreen_exit_black_48dp.png b/src/main/resources/icons/baseline_fullscreen_exit_black_48dp.png deleted file mode 100644 index 5fc3166ac68a482f4b8c92622584292a5c3085a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}tGfx-CkP61PR~5M!6hvGc-`Bs) z->55*v&s0jOND2QL#yTPx!fE}PTJn}WICX(A9-NFX{L$)8RM24-3FS#;OXk; Jvd$@?2>|5vARzz% diff --git a/src/main/resources/icons/baseline_fullscreen_exit_white_48dp.png b/src/main/resources/icons/baseline_fullscreen_exit_white_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..364bad0b843bf6a17478979fb0e66915aa67d818 GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZA`BpB)|k7xlYrjj7PU|_|fb^sd^~`LtLbIA@2_R9U%Rlu6{1-oD!Mzopr0AqdkB{{&HWkC+`WGH5Z4ctQvvgzy7gB_nRK#`IeN O0000%8ieVUvVhF}C48brILovWm3=j+j6h%=KP!z>53`J2C0R+QP1Vb?t zMfT(2IWKLmyWMh=k5A=#Iq%P1k|YQJnUXBa9-S^8X6_bGxLZ8oZt;Y>#S`upPqaeTLm^@1g|&j+kl*r&B7nx3}#@$+CA33px;)`7y;x= zZ3bAuHz7dCmjiwW)Ylirs2V?!HSVlF>pu~$E?2bOr0w&Z%PD7JB0vf``43!jfC05# z()K;yR`$JsoSBILG33-W19UY4+(ORS?xjr*(4w|bd6TOO`wk$dZ6ZJea$?N@HEMf> zH*gLUVLuOkLQY^JfDhM@6Yd&-9rZPPP^<6oj-8skM2;aRfu80V6JOfRCzK`eAno>Th4_9s`R0^=XftrWulH}dMPcTN&-WTqkaz; zIUl@^e*2jxkU|hKj9?ueD~|{PY{Pdbv4Cd>HlUeEped#l*dDZodvFc+Wd)z}*Sx*i z7;6Su!GVFJZgxi4=ffDL%KDyD(INk2Qc_Y<;x^xlGq12d_H1bY0000