Skip to content

Commit c4e1446

Browse files
committed
fix
1 parent 7dad5a5 commit c4e1446

4 files changed

Lines changed: 21 additions & 25 deletions

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ loader_version=0.16.14
1010
loom_version=1.10-SNAPSHOT
1111

1212
# Mod Properties
13-
mod_version=1.5.8
13+
mod_version=1.5.9
1414
maven_group=com.github.squi2rel.vp
1515
archives_base_name=VideoPlayer
1616

src/client/java/com/github/squi2rel/vp/video/VideoPlayer.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -85,15 +85,13 @@ public int getHeight() {
8585
@Override
8686
public void play(VideoInfo info) {
8787
if (targetTime > 0) {
88-
decoder.onPlay(() -> {
89-
long time = targetTime;
90-
MinecraftClient.getInstance().execute(() -> {
91-
setVolume(config.volume);
92-
decoder.setProgress(time);
93-
});
94-
decoder.onPlay(() -> {});
95-
});
88+
String[] params = info.params();
89+
String[] newParams = new String[params.length + 1];
90+
System.arraycopy(params, 0, newParams, 0, params.length);
91+
newParams[newParams.length - 1] = ":start-time=" + targetTime / 1000f;
92+
info = new VideoInfo(info.playerName(), info.name(), info.path(), info.rawPath(), info.expire(), info.seekable(), newParams);
9693
}
94+
decoder.onPlay(() -> decoder.submit(() -> decoder.setVolume(config.volume)));
9795
decoder.init(info);
9896
}
9997

src/client/java/com/github/squi2rel/vp/video/VlcDecoder.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515
import java.nio.ByteBuffer;
1616
import java.util.function.BiConsumer;
1717

18-
import static com.github.squi2rel.vp.video.StreamListener.runAsync;
19-
2018
public class VlcDecoder {
2119
private static MediaPlayerFactory factory;
2220
private final EmbeddedMediaPlayer mediaPlayer;
@@ -60,7 +58,7 @@ public void finished(MediaPlayer mediaPlayer) {
6058

6159
@Override
6260
public void error(MediaPlayer mediaPlayer) {
63-
mediaPlayer.controls().stop();
61+
mediaPlayer.submit(() -> mediaPlayer.controls().stop());
6462
}
6563
});
6664
mediaPlayer.video().setAdjustVideo(false);
@@ -84,6 +82,10 @@ public void onPlay(Runnable playListener) {
8482
this.playListener = playListener;
8583
}
8684

85+
public void submit(Runnable r) {
86+
mediaPlayer.submit(r);
87+
}
88+
8789
public void init(VideoInfo info) {
8890
mediaPlayer.media().play(info.path(), info.params());
8991
}
@@ -94,13 +96,11 @@ public ByteBuffer decodeNextFrame() {
9496

9597
public void cleanup() {
9698
stop();
97-
Thread t = new Thread(mediaPlayer::release);
98-
t.setDaemon(true);
99-
t.start();
99+
mediaPlayer.submit(mediaPlayer::release);
100100
}
101101

102102
public void stop() {
103-
runAsync(() -> mediaPlayer.controls().stop());
103+
mediaPlayer.submit(() -> mediaPlayer.controls().stop());
104104
glBuffer = null;
105105
buffer = null;
106106
}

src/main/java/com/github/squi2rel/vp/video/StreamListener.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,27 +21,23 @@ public class StreamListener implements IVideoListener {
2121
private static final MediaPlayerEventAdapter callback = new MediaPlayerEventAdapter() {
2222
@Override
2323
public void playing(MediaPlayer mediaPlayer) {
24-
System.out.println("playing event triggered");
2524
StreamListener listener = references.get(mediaPlayer);
2625
if (listener == null) return;
2726
listener.playing.accept(listener.player.status().isSeekable());
2827
}
2928

3029
@Override
3130
public void stopped(MediaPlayer mediaPlayer) {
32-
System.out.println("stopped event triggered");
3331
finish(mediaPlayer);
3432
}
3533

3634
@Override
3735
public void finished(MediaPlayer mediaPlayer) {
38-
System.out.println("Finished event triggered");
3936
finish(mediaPlayer);
4037
}
4138

4239
@Override
4340
public void error(MediaPlayer mediaPlayer) {
44-
System.out.println("errored event triggered");
4541
StreamListener listener = references.get(mediaPlayer);
4642
if (listener == null) return;
4743
synchronized (listener) {
@@ -50,7 +46,7 @@ public void error(MediaPlayer mediaPlayer) {
5046
listener.errored.run();
5147
listener.stopped.run();
5248
listener.player = null;
53-
runAsync(() -> {
49+
mediaPlayer.submit(() -> {
5450
mediaPlayer.controls().stop();
5551
mediaPlayer.release();
5652
});
@@ -67,7 +63,7 @@ private static void finish(MediaPlayer mediaPlayer) {
6763
listener.player = null;
6864
listener.stopped.run();
6965
}
70-
mediaPlayer.release();
66+
mediaPlayer.submit(mediaPlayer::release);
7167
}
7268

7369
public StreamListener(VideoInfo info) {
@@ -85,8 +81,10 @@ public StreamListener(VideoInfo info) {
8581
timeout.run();
8682
stopped.run();
8783
}
88-
p.controls().stop();
89-
p.release();
84+
p.submit(() -> {
85+
p.controls().stop();
86+
p.release();
87+
});
9088
} catch (Exception ignored) {
9189
}
9290
});
@@ -141,7 +139,7 @@ public void cancel() {
141139
references.remove(player);
142140
player = null;
143141
}
144-
runAsync(() -> {
142+
p.submit(() -> {
145143
p.controls().stop();
146144
p.release();
147145
});

0 commit comments

Comments
 (0)