From d6208d7df23d1cafe5e7ae17dfff8371461c5779 Mon Sep 17 00:00:00 2001 From: okjack Date: Thu, 2 May 2024 20:34:30 +0800 Subject: [PATCH] update --- app/build.gradle | 19 +++++++++++-------- .../com/fongmi/android/tv/player/ExoUtil.java | 6 +++++- build.gradle | 1 - catvod/build.gradle | 2 +- ijkplayer/build.gradle | 2 +- .../com/fongmi/quickjs/utils/Connect.java | 4 +--- settings.gradle | 3 +++ .../xunlei/downloadlib/android/XLUtil.java | 3 +-- 8 files changed, 23 insertions(+), 17 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 3784563fa..95691ade9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -101,14 +101,17 @@ dependencies { implementation project(':jianpian') implementation project(':forcetech') implementation project(':ijkplayer') - implementation 'androidx.media3:media3-datasource-okhttp:' + media3Version - implementation 'androidx.media3:media3-datasource-rtmp:' + media3Version - implementation 'androidx.media3:media3-exoplayer:' + media3Version - implementation 'androidx.media3:media3-exoplayer-dash:' + media3Version - implementation 'androidx.media3:media3-exoplayer-hls:' + media3Version - implementation 'androidx.media3:media3-exoplayer-rtsp:' + media3Version - implementation 'androidx.media3:media3-exoplayer-smoothstreaming:' + media3Version - implementation 'androidx.media3:media3-ui:' + media3Version + pythonImplementation project(':pyramid') + implementation project(':media-lib-datasource-okhttp') + implementation project(':media-lib-datasource-rtmp') + implementation project(':media-lib-decoder-av1') + implementation project(':media-lib-decoder-ffmpeg') + implementation project(':media-lib-exoplayer') + implementation project(':media-lib-exoplayer-dash') + implementation project(':media-lib-exoplayer-hls') + implementation project(':media-lib-exoplayer-rtsp') + implementation project(':media-lib-exoplayer-smoothstreaming') + implementation project(':media-lib-ui') implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.biometric:biometric:1.1.0' implementation 'androidx.lifecycle:lifecycle-viewmodel:2.7.0' diff --git a/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java b/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java index 496a1ca15..00f7008fe 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java @@ -43,6 +43,7 @@ import com.fongmi.android.tv.bean.Channel; import com.fongmi.android.tv.bean.Drm; import com.fongmi.android.tv.bean.Result; import com.fongmi.android.tv.bean.Sub; +import com.fongmi.android.tv.utils.Sniffer; import com.fongmi.android.tv.utils.UrlUtil; import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Path; @@ -66,7 +67,7 @@ public class ExoUtil { private static Cache cache; public static LoadControl buildLoadControl() { - return new DefaultLoadControl(); + return new DefaultLoadControl(Setting.getBuffer()); } public static TrackSelector buildTrackSelector() { @@ -115,6 +116,7 @@ public class ExoUtil { private static String getMimeType(String format, int errorCode) { if (format != null) return format; + if (errorCode == PlaybackException.ERROR_CODE_PARSING_MANIFEST_UNSUPPORTED || errorCode == PlaybackException.ERROR_CODE_PARSING_MANIFEST_MALFORMED) return MimeTypes.APPLICATION_OCTET; if (errorCode == PlaybackException.ERROR_CODE_PARSING_CONTAINER_UNSUPPORTED || errorCode == PlaybackException.ERROR_CODE_PARSING_CONTAINER_MALFORMED) return MimeTypes.APPLICATION_M3U8; return null; } @@ -143,7 +145,9 @@ public class ExoUtil { MediaItem.Builder builder = new MediaItem.Builder().setUri(uri); if (subs.size() > 0) builder.setSubtitleConfigurations(getSubtitles(subs)); if (drm != null) builder.setDrmConfiguration(drm.get()); + builder.setAllowChunklessPreparation(Players.isHard(Players.EXO)); if (mimeType != null) builder.setMimeType(mimeType); + builder.setAds(Sniffer.getRegex(uri)); return builder.build(); } diff --git a/build.gradle b/build.gradle index f352f4d01..a70c26ddb 100644 --- a/build.gradle +++ b/build.gradle @@ -12,7 +12,6 @@ tasks.register('clean', Delete) { project.ext { gsonVersion = '2.10.1' jsoupVersion = '1.15.3' - media3Version = '1.2.1' okhttpVersion = '4.12.0' annotationVersion = '1.3.0' } diff --git a/catvod/build.gradle b/catvod/build.gradle index e1b9731ef..e60588173 100644 --- a/catvod/build.gradle +++ b/catvod/build.gradle @@ -12,7 +12,7 @@ android { } dependencies { - api 'androidx.media3:media3-common:' + media3Version + api project(':media-lib-common') api 'androidx.annotation:annotation:' + annotationVersion api 'androidx.preference:preference:1.2.1' api 'com.google.code.gson:gson:' + gsonVersion diff --git a/ijkplayer/build.gradle b/ijkplayer/build.gradle index 802edde4c..2d5929478 100644 --- a/ijkplayer/build.gradle +++ b/ijkplayer/build.gradle @@ -17,5 +17,5 @@ android { dependencies { implementation project(':catvod') - implementation 'androidx.media3:media3-ui:1.1.1' + implementation project(':media-lib-ui') } \ No newline at end of file diff --git a/quickjs/src/main/java/com/fongmi/quickjs/utils/Connect.java b/quickjs/src/main/java/com/fongmi/quickjs/utils/Connect.java index 018243755..05e8172d6 100644 --- a/quickjs/src/main/java/com/fongmi/quickjs/utils/Connect.java +++ b/quickjs/src/main/java/com/fongmi/quickjs/utils/Connect.java @@ -1,14 +1,12 @@ package com.fongmi.quickjs.utils; import com.fongmi.quickjs.bean.Req; -import com.github.catvod.net.OkCookieJar; import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Json; import com.github.catvod.utils.Util; import com.google.common.net.HttpHeaders; import com.whl.quickjs.wrapper.JSObject; import com.whl.quickjs.wrapper.QuickJSContext; -import java.security.SecureRandom; import java.util.List; import java.util.Map; @@ -91,7 +89,7 @@ public class Connect { } private static RequestBody getFormDataBody(Req req) { - String boundary = "--dio-boundary-" + new SecureRandom().nextInt(42949) + "" + new SecureRandom().nextInt(67296); + String boundary = "--dio-boundary-" + new Random().nextInt(42949) + "" + new Random().nextInt(67296); MultipartBody.Builder builder = new MultipartBody.Builder(boundary).setType(MultipartBody.FORM); Map params = Json.toMap(req.getData()); for (String key : params.keySet()) builder.addFormDataPart(key, params.get(key)); diff --git a/settings.gradle b/settings.gradle index eddc91d9b..408331af5 100644 --- a/settings.gradle +++ b/settings.gradle @@ -28,9 +28,12 @@ include ':app' include ':hook' include ':tvbus' include ':catvod' +include ':pyramid' include ':quickjs' include ':thunder' include ':jianpian' include ':forcetech' include ':ijkplayer' rootProject.name = "TV" +gradle.ext.androidxMediaModulePrefix = 'media-' +apply from: file("/media/core_settings.gradle") diff --git a/thunder/src/main/java/com/xunlei/downloadlib/android/XLUtil.java b/thunder/src/main/java/com/xunlei/downloadlib/android/XLUtil.java index 05dc6226d..848663c96 100644 --- a/thunder/src/main/java/com/xunlei/downloadlib/android/XLUtil.java +++ b/thunder/src/main/java/com/xunlei/downloadlib/android/XLUtil.java @@ -1,7 +1,6 @@ package com.xunlei.downloadlib.android; import android.util.Base64; -import java.security.SecureRandom; import java.util.Random; import java.util.UUID; @@ -23,7 +22,7 @@ public class XLUtil { } private static String random(String base, int length) { - Random random = new SecureRandom(); + Random random = new Random(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < length; i++) sb.append(base.charAt(random.nextInt(base.length()))); return sb.toString();