From bbd50a25da37d86c04617b9eb4e7710c8e044108 Mon Sep 17 00:00:00 2001 From: jhengazuji Date: Mon, 17 Nov 2025 14:33:35 +0800 Subject: [PATCH] Fix danmaku bug --- .../android/tv/player/danmaku/DanPlayer.java | 6 +----- .../fongmi/android/tv/player/danmaku/Loader.java | 15 ++++++++------- .../main/java/com/github/catvod/utils/Path.java | 8 -------- 3 files changed, 9 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/player/danmaku/DanPlayer.java b/app/src/main/java/com/fongmi/android/tv/player/danmaku/DanPlayer.java index 0e5697bb9..527d67a74 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/danmaku/DanPlayer.java +++ b/app/src/main/java/com/fongmi/android/tv/player/danmaku/DanPlayer.java @@ -21,15 +21,11 @@ import master.flame.danmaku.ui.widget.DanmakuView; public class DanPlayer implements DrawHandler.Callback { private final DanmakuContext context; - private final Parser parser; - private final Loader loader; private DanmakuView view; private Future future; private Players player; public DanPlayer() { - parser = new Parser(); - loader = new Loader(); context = DanmakuContext.create(); initContext(); } @@ -107,7 +103,7 @@ public class DanPlayer implements DrawHandler.Callback { future = App.submit(() -> { if (view != null) view.release(); if (item.isEmpty() || view == null) return; - view.prepare(parser.load(loader.load(item).getDataSource()), context); + view.prepare(new Parser().load(new Loader().load(item).getDataSource()), context); }); } diff --git a/app/src/main/java/com/fongmi/android/tv/player/danmaku/Loader.java b/app/src/main/java/com/fongmi/android/tv/player/danmaku/Loader.java index 912f0c099..438d0c447 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/danmaku/Loader.java +++ b/app/src/main/java/com/fongmi/android/tv/player/danmaku/Loader.java @@ -1,29 +1,30 @@ package com.fongmi.android.tv.player.danmaku; import com.fongmi.android.tv.bean.Danmaku; -import com.fongmi.android.tv.utils.Download; -import com.github.catvod.utils.Path; +import com.github.catvod.net.OkHttp; -import java.io.File; import java.io.InputStream; import master.flame.danmaku.danmaku.loader.ILoader; import master.flame.danmaku.danmaku.parser.android.AndroidFileSource; +import okhttp3.Response; public class Loader implements ILoader { private AndroidFileSource source; public Loader load(Danmaku item) { - try { load(item.getRealUrl()); } catch (Throwable ignored) {} + OkHttp.cancel("danmaku"); + load(item.getRealUrl()); return this; } @Override public void load(String url) { - File file = Path.danmaku(url); - Download.create(url, file).start(); - source = new AndroidFileSource(file); + try (Response res = OkHttp.newCall(url, "danmaku").execute()) { + load(res.body().byteStream()); + } catch (Throwable ignored) { + } } @Override diff --git a/catvod/src/main/java/com/github/catvod/utils/Path.java b/catvod/src/main/java/com/github/catvod/utils/Path.java index 25e444d61..06e9b0f99 100644 --- a/catvod/src/main/java/com/github/catvod/utils/Path.java +++ b/catvod/src/main/java/com/github/catvod/utils/Path.java @@ -81,10 +81,6 @@ public class Path { return mkdir(new File(cache() + File.separator + "jpa")); } - public static File danmaku() { - return mkdir(new File(cache() + File.separator + "danmaku")); - } - public static File thunder() { return mkdir(new File(cache() + File.separator + "thunder")); } @@ -121,10 +117,6 @@ public class Path { return new File(jar(), Util.md5(name).concat(".jar")); } - public static File danmaku(String name) { - return new File(danmaku(), Util.md5(name)); - } - public static File thunder(String name) { return mkdir(new File(thunder(), name)); }