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 8e000d87e..2ee313db4 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 @@ -140,6 +140,7 @@ public class Players implements Player.Listener, ParseCallback { } public void setSub(Sub sub) { + setPosition(getPosition()); this.sub = sub; setMediaItem(); } @@ -373,7 +374,7 @@ public class Players implements Player.Listener, ParseCallback { } private List checkSub(List subs) { - if (sub == null) return subs; + if (sub == null || subs.contains(sub)) return subs; subs.add(0, sub); return subs; } diff --git a/catvod/src/main/java/com/github/catvod/utils/Util.java b/catvod/src/main/java/com/github/catvod/utils/Util.java index 9d7c86254..83ec02549 100644 --- a/catvod/src/main/java/com/github/catvod/utils/Util.java +++ b/catvod/src/main/java/com/github/catvod/utils/Util.java @@ -20,6 +20,7 @@ import java.net.SocketException; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; +import java.util.Arrays; import java.util.Enumeration; import okhttp3.OkHttp; @@ -73,12 +74,20 @@ public class Util { UniversalDetector detector = new UniversalDetector(null); detector.handleData(bytes, 0, bytes.length); detector.dataEnd(); - return new String(bytes, detector.getDetectedCharset()).getBytes(StandardCharsets.UTF_8); + return removeBOM(new String(bytes, detector.getDetectedCharset()).getBytes(StandardCharsets.UTF_8)); } catch (Exception e) { return bytes; } } + public static byte[] removeBOM(byte[] bytes) { + byte[] bom = {(byte) 0xEF, (byte) 0xBB, (byte) 0xBF}; + if (bytes.length < 3 || !Arrays.equals(Arrays.copyOf(bytes, 3), bom)) return bytes; + byte[] newBytes = new byte[bytes.length - 3]; + System.arraycopy(bytes, 3, newBytes, 0, newBytes.length); + return newBytes; + } + public static String md5(String src) { try { if (TextUtils.isEmpty(src)) return "";