Fix danmaku bug

pull/605/head
jhengazuji 4 months ago
parent 5577e0f71f
commit bbd50a25da
  1. 6
      app/src/main/java/com/fongmi/android/tv/player/danmaku/DanPlayer.java
  2. 15
      app/src/main/java/com/fongmi/android/tv/player/danmaku/Loader.java
  3. 8
      catvod/src/main/java/com/github/catvod/utils/Path.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);
});
}

@ -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

@ -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));
}

Loading…
Cancel
Save