diff --git a/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java b/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java index 21c59df66..c32c56df7 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java +++ b/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java @@ -12,7 +12,6 @@ import com.fongmi.android.tv.player.Players; import com.fongmi.android.tv.utils.UrlUtil; import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Path; -import com.github.catvod.utils.Util; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -247,10 +246,7 @@ public class LiveParser { try { ClearKey.objectFrom(key); } catch (Exception e) { - String[] split = key.replace("\"", "").replace("{", "").replace("}", "").split(":"); - String kid = Util.base64(Util.hex2byte(split[0].trim())).replace("=", ""); - String k = Util.base64(Util.hex2byte(split[1].trim())).replace("=", ""); - key = ClearKey.get(kid, k).toString(); + key = ClearKey.get(key.replace("\"", "").replace("{", "").replace("}", "")).toString(); } } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/ClearKey.java b/app/src/main/java/com/fongmi/android/tv/bean/ClearKey.java index 0dfd6c6c6..b8b7cef94 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/ClearKey.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/ClearKey.java @@ -3,9 +3,10 @@ package com.fongmi.android.tv.bean; import androidx.annotation.NonNull; import com.fongmi.android.tv.App; +import com.github.catvod.utils.Util; import com.google.gson.annotations.SerializedName; -import java.util.Arrays; +import java.util.ArrayList; import java.util.List; public class ClearKey { @@ -21,11 +22,21 @@ public class ClearKey { return item; } - public static ClearKey get(String kid, String k) { - ClearKey key = new ClearKey(); - key.keys = Arrays.asList(new Keys(kid, k)); - key.type = "temporary"; - return key; + public static ClearKey get(String line) { + ClearKey item = new ClearKey(); + item.keys = new ArrayList<>(); + item.type = "temporary"; + item.addKeys(line); + return item; + } + + private void addKeys(String line) { + for (String s : line.split(",")) { + String[] split = s.split(":"); + String kid = Util.base64(Util.hex2byte(split[0].trim())).replace("=", ""); + String k = Util.base64(Util.hex2byte(split[1].trim())).replace("=", ""); + keys.add(new Keys(kid, k)); + } } public static class Keys { diff --git a/gradle.properties b/gradle.properties index 7c052e32f..3129f3f7a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ # The setting is particularly useful for tweaking memory settings. org.gradle.daemon=true org.gradle.parallel=true -org.gradle.jvmargs=-Xmx8192m -Dfile.encoding=UTF-8 +org.gradle.jvmargs=-Xmx4096m -Dfile.encoding=UTF-8 # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects