diff --git a/app/build.gradle b/app/build.gradle index 311bddf10..ad92923b2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -131,6 +131,7 @@ dependencies { implementation 'com.tencent.tbs:tbssdk:44286' implementation 'io.antmedia:rtmp-client:3.2.0' implementation 'javax.servlet:javax.servlet-api:3.1.0' + implementation 'net.java.dev.jna:jna:5.2.0' implementation 'org.chromium.net:cronet-embedded:76.3809.111' implementation 'org.eclipse.jetty:jetty-client:8.1.22.v20160922' implementation('org.eclipse.jetty:jetty-server:8.1.22.v20160922') { exclude group: 'org.eclipse.jetty.orbit', module: 'javax.servlet' } diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/ZLive.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/ZLive.java index 3abffd321..2f70d1f9c 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/ZLive.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/ZLive.java @@ -1,27 +1,22 @@ package com.fongmi.android.tv.player.extractor; +import android.os.SystemClock; + import com.fongmi.android.tv.player.Source; import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Path; public class ZLive implements Source.Extractor { - private final String BASE = "http://127.0.0.1:6677/stream/"; + private static final int PORT = 6677; private boolean init; - public void init() { - com.east.android.zlive.ZLive.INSTANCE.OnLiveStart(6677); + private void init() { + com.east.android.zlive.ZLive.INSTANCE.OnLiveStart(PORT); + SystemClock.sleep(50); init = true; } - private String getLive(String uuid) { - return BASE + "live?uuid=" + uuid; - } - - private String getOpen(String uuid) { - return BASE + "open?uuid=" + uuid; - } - @Override public boolean match(String scheme, String host) { return "zlive".equals(scheme); @@ -31,18 +26,15 @@ public class ZLive implements Source.Extractor { public String fetch(String url) throws Exception { if (!init) init(); String[] split = url.split("/"); - String server = split[2]; - String uuid = split[3]; - String param = "&group=5850&mac=00:00:00:00:00:00&dir="; - String result = getLive(uuid) + "&server=" + server + param + Path.cache(); - OkHttp.newCall(getOpen(uuid)).execute(); - return result; + OkHttp.newCall(String.format("http://127.0.0.1:%s/stream/open?uuid=%s", PORT, split[3])).execute(); + return String.format("http://127.0.0.1:%s/stream/live?uuid=%s&server=%s&group=5850&mac=00:00:00:00:00:00&dir=%s", PORT, split[3], split[2], Path.cache()); } @Override public void stop() { try { if (init) com.east.android.zlive.ZLive.INSTANCE.OnLiveStop(); + SystemClock.sleep(50); init = false; } catch (Throwable e) { e.printStackTrace(); diff --git a/zlive/build.gradle b/zlive/build.gradle index 88110a3d4..3f6736664 100644 --- a/zlive/build.gradle +++ b/zlive/build.gradle @@ -15,5 +15,5 @@ android { } dependencies { - implementation 'net.java.dev.jna:jna:5.14.0' + implementation 'net.java.dev.jna:jna:5.2.0' } \ No newline at end of file