|
13 | 13 | import org.slf4j.Logger; |
14 | 14 | import org.slf4j.LoggerFactory; |
15 | 15 | import uk.yermak.audiobookconverter.AudiobookConverter; |
16 | | -import uk.yermak.audiobookconverter.book.MediaInfo; |
17 | 16 | import uk.yermak.audiobookconverter.Utils; |
| 17 | +import uk.yermak.audiobookconverter.book.MediaInfo; |
18 | 18 |
|
19 | 19 | import java.io.File; |
20 | 20 | import java.lang.invoke.MethodHandles; |
|
26 | 26 | /** |
27 | 27 | * Created by yermak on 26-Oct-18. |
28 | 28 | */ |
29 | | -public class MediaPlayerController { |
| 29 | +public class MediaPlayerController { |
30 | 30 | final static Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); |
31 | 31 |
|
32 | 32 | @FXML |
@@ -120,21 +120,30 @@ private void playMedias(MediaInfo selected) { |
120 | 120 | mediaPlayer.volumeProperty().bindBidirectional(volume.valueProperty()); |
121 | 121 | mediaPlayer.volumeProperty().set(1.0); |
122 | 122 |
|
123 | | - mediaPlayer.rateProperty().bind(context.getOutputParameters().getSpeedObservable()); |
124 | 123 | mediaPlayer.rateProperty().set(context.getOutputParameters().getSpeed()); |
| 124 | + mediaPlayer.rateProperty().bind(context.getOutputParameters().getSpeedObservable()); |
125 | 125 |
|
126 | 126 | timelapse.valueProperty().addListener(observable -> { |
127 | 127 | if (timelapse.isValueChanging()) { |
| 128 | + boolean wasPlaying = false; |
| 129 | + if (mediaPlayer.getStatus() == MediaPlayer.Status.PLAYING) { |
| 130 | + wasPlaying = true; |
| 131 | + mediaPlayer.pause(); |
| 132 | + } |
128 | 133 | playTime.setText(Utils.formatTime(timelapse.getValue() * 1000)); |
129 | 134 | mediaPlayer.seek(Duration.seconds(timelapse.getValue())); |
| 135 | + if (wasPlaying) { |
| 136 | + mediaPlayer.play(); |
| 137 | + } |
130 | 138 | } |
131 | 139 | }); |
132 | 140 |
|
133 | 141 | mediaPlayer.setOnEndOfMedia(() -> { |
134 | 142 | executorService.shutdown(); |
135 | 143 | mediaPlayer.volumeProperty().unbindBidirectional(volume.valueProperty()); |
136 | 144 | mediaPlayer.dispose(); |
137 | | - mediaPlayer = null; |
| 145 | + mediaPlayer |
| 146 | + = null; |
138 | 147 | totalTime.setText("00:00:00"); |
139 | 148 | playTime.setText("00:00:00"); |
140 | 149 |
|
|
0 commit comments