diff --git a/app/src/main/java/com/fongmi/android/tv/player/Players.java b/app/src/main/java/com/fongmi/android/tv/player/Players.java index ce4634e3c..28b46d98b 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Players.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Players.java @@ -82,7 +82,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic private int retry; private int decode; private int player; - private long lastDanmuUpdate; + private float speed; public static boolean isExo(int type) { return type == EXO; @@ -287,6 +287,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic public String setSpeed(float speed) { if (exoPlayer != null) exoPlayer.setPlaybackSpeed(speed); if (ijkPlayer != null) ijkPlayer.setSpeed(speed); + this.speed = speed; return getSpeedText(); } @@ -671,11 +672,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic @Override public void updateTimer(DanmakuTimer timer) { - long timestamp = System.currentTimeMillis(); - if (lastDanmuUpdate <= 0 || (timestamp - lastDanmuUpdate) > 300) { - App.post(() -> timer.update(getPosition())); - lastDanmuUpdate = timestamp; - } + if (speed != 1) timer.add((long) (timer.lastInterval() * (speed - 1))); } @Override