Balanced sounds

This commit is contained in:
Li ZongYing
2024-06-03 18:17:43 +08:00
parent cf8d7f00a8
commit e55584c910
16 changed files with 125 additions and 43 deletions
+4
View File
@@ -1,5 +1,9 @@
## 更新日誌
### v2.1.1
* 平衡聲音
### v2.1.0
* 恢復播放
+1
View File
@@ -4,3 +4,4 @@
/CMakeFiles/
/Makefile
/src/main/cpp/native.c
/src/main/cpp/aes.c
+3 -1
View File
@@ -21,7 +21,9 @@ if (IS_SO_BUILD)
SHARED
# Provides a relative path to your source file(s).
src/main/cpp/native.c)
src/main/cpp/native.c
src/main/cpp/aes.c
)
# 设置编译输出路径
set_target_properties(
+25 -7
View File
@@ -98,6 +98,10 @@ static def VersionName() {
}
}
def gson_version = "2.10.1"
def failureaccess_version = "1.0.2"
def guava_version = "33.2.1-android"
dependencies {
// minSdk17
@@ -106,11 +110,13 @@ dependencies {
implementation "androidx.media3:media3-ui:$media3_version"
// For media playback using ExoPlayer
implementation ("com.google.guava:guava:31.1-android")
implementation ("androidx.media3:media3-common:$media3_version") {
exclude group: 'com.google.common', module: 'guava'
implementation("com.google.guava:failureaccess:$failureaccess_version")
implementation("com.google.guava:guava:$guava_version")
implementation("androidx.media3:media3-common:$media3_version") {
exclude group: 'com.google.guava', module: 'guava'
exclude group: 'com.google.guava', module: 'failureaccess'
}
implementation ("androidx.media3:media3-exoplayer:$media3_version")
implementation("androidx.media3:media3-exoplayer:$media3_version")
// For HLS playback support with ExoPlayer
implementation "androidx.media3:media3-exoplayer-hls:$media3_version"
@@ -120,7 +126,7 @@ dependencies {
implementation 'com.google.protobuf:protobuf-kotlin:3.25.1'
// Gson 2.10.1 and older: API level 19
implementation("com.google.code.gson:gson:2.10.1")
implementation("com.google.code.gson:gson:$gson_version")
implementation("com.squareup.retrofit2:converter-gson:$retrofit2_version") {
exclude group: 'com.google.code.gson', module: 'gson'
}
@@ -144,7 +150,19 @@ dependencies {
configurations.configureEach {
resolutionStrategy {
force 'com.google.code.gson:gson:2.10.1'
force 'com.google.guava:guava:31.1-android'
force("com.google.code.gson:gson:$gson_version")
force "com.google.guava:failureaccess:$failureaccess_version"
force "com.google.guava:guava:$guava_version"
eachDependency { details ->
if (details.requested.group == 'com.google.code.gson') {
details.useVersion "$gson_version"
}
if (details.requested.group == 'com.google.guava' && details.requested.name == 'failureaccess') {
details.useVersion "$failureaccess_version"
}
if (details.requested.group == 'com.google.guava' && details.requested.name == 'guava') {
details.useVersion "$guava_version"
}
}
}
}
+6
View File
@@ -19,3 +19,9 @@
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keep class com.google.gson.** { *; }
-dontwarn com.google.gson.**
-keep class com.google.guava.** { *; }
-dontwarn com.google.guava.**
Binary file not shown.
Binary file not shown.
+9
View File
@@ -0,0 +1,9 @@
#ifndef AES_H
#define AES_H
#include <stddef.h>
void init();
void encode(const char *in, size_t size, char *out);
#endif
@@ -93,6 +93,7 @@ class PlayerFragment : Fragment() {
playerView?.player?.run {
setMediaItem(MediaItem.fromUri(tvViewModel.getVideoUrlCurrent()))
prepare()
volume = tvViewModel.getTV().volume
}
}
@@ -7,6 +7,8 @@ class Encryptor {
external fun encrypt(t: String, e: String, r: String, n: String, i: String): String
external fun encrypt2(t: String): String
external fun hash(data: ByteArray): ByteArray?
external fun hash2(data: ByteArray): ByteArray?
@@ -1,6 +1,7 @@
package com.lizongying.mytv.api
import android.content.Context
import android.util.Log
import com.lizongying.mytv.SP
import com.lizongying.mytv.Utils.getDateTimestamp
import com.lizongying.mytv.models.TVViewModel
@@ -57,6 +58,7 @@ object YSP {
var yspsdkinput = ""
var openapi_signature = ""
var yspticket = ""
var nseqId = 1
var nrequest_id = ""
@@ -85,6 +87,8 @@ object YSP {
encryptor.encrypt(cnlid, timeStr, appVer, guid, platform)
randStr = getRand()
signature = getSignature()
yspticket = encryptor.encrypt2("$livepid&$timeStr&$guid&519748109").lowercase()
return """{"cnlid":"$cnlid","livepid":"$livepid","stream":"$stream","guid":"$guid","cKey":"$cKey","adjust":$adjust,"sphttps":"$sphttps","platform":"$platform","cmd":"$cmd","encryptVer":"$encryptVer","dtype":"$dtype","devid":"$devid","otype":"$otype","appVer":"$appVer","app_version":"$appVersion","rand_str":"$randStr","channel":"$channel","defn":"$defn","signature":"$signature"}"""
}
@@ -22,6 +22,7 @@ interface YSPApiService {
@Header("Yspplayertoken") token: String,
@Header("Yspsdkinput") Yspsdkinput: String,
@Header("yspsdksign") yspsdksign: String,
@Header("Yspticket") Yspticket: String,
@Header("Seqid") Seqid: String,
@Header("Request-Id") RequestId: String,
@Header("Yspappid") Yspappid: String="519748109",
@@ -15,6 +15,7 @@ data class TV(
var programType: ProgramType,
var needToken: Boolean = false,
var mustToken: Boolean = false,
var volume: Float = 0.1F,
) : Serializable {
override fun toString(): String {
@@ -21,7 +21,8 @@ object TVList {
"2022576801",
ProgramType.Y_PROTO,
false,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -34,7 +35,8 @@ object TVList {
"2022576701",
ProgramType.Y_PROTO,
true,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -47,7 +49,8 @@ object TVList {
"2022576501",
ProgramType.Y_PROTO,
true,
mustToken = true
mustToken = true,
0.5F
),
TV(
0,
@@ -60,7 +63,8 @@ object TVList {
"2022576601",
ProgramType.Y_PROTO,
false,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -73,7 +77,8 @@ object TVList {
"2022576401",
ProgramType.Y_PROTO,
true,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -86,7 +91,8 @@ object TVList {
"2013693901",
ProgramType.Y_PROTO,
true,
mustToken = true
mustToken = true,
0.5F
),
TV(
0,
@@ -99,7 +105,8 @@ object TVList {
"2022576201",
ProgramType.Y_PROTO,
true,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -112,7 +119,8 @@ object TVList {
"2022576101",
ProgramType.Y_PROTO,
true,
mustToken = true
mustToken = true,
0.5F
),
TV(
0,
@@ -125,7 +133,8 @@ object TVList {
"2022576001",
ProgramType.Y_PROTO,
true,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -138,7 +147,8 @@ object TVList {
"2022573001",
ProgramType.Y_PROTO,
true,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -151,7 +161,8 @@ object TVList {
"2022575901",
ProgramType.Y_PROTO,
true,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -164,7 +175,8 @@ object TVList {
"2022575801",
ProgramType.Y_PROTO,
true,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -177,7 +189,8 @@ object TVList {
"2022575701",
ProgramType.Y_PROTO,
false,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -190,7 +203,8 @@ object TVList {
"2022575601",
ProgramType.Y_PROTO,
true,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -203,7 +217,8 @@ object TVList {
"2022575501",
ProgramType.Y_PROTO,
true,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -216,7 +231,8 @@ object TVList {
"2022575401",
ProgramType.Y_PROTO,
true,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -229,7 +245,8 @@ object TVList {
"2022575301",
ProgramType.Y_PROTO,
true,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -242,7 +259,8 @@ object TVList {
"2022576301",
ProgramType.Y_PROTO,
true,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -255,7 +273,8 @@ object TVList {
"2022575201",
ProgramType.Y_PROTO,
true,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -268,7 +287,8 @@ object TVList {
"2020603421",
ProgramType.Y_JCE,
false,
mustToken = false
mustToken = false,
0.8F
),
TV(
0,
@@ -738,7 +758,8 @@ object TVList {
"2019927403",
ProgramType.Y_JCE,
true,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -751,7 +772,8 @@ object TVList {
"2022606701",
ProgramType.Y_JCE,
true,
mustToken = false
mustToken = false,
0.8F
),
TV(
0,
@@ -764,7 +786,8 @@ object TVList {
"2022823801",
ProgramType.Y_JCE,
true,
mustToken = false
mustToken = false,
0.6F
),
),
"港澳台" to listOf(
@@ -779,7 +802,8 @@ object TVList {
"",
ProgramType.F,
false,
mustToken = false
mustToken = false,
0.7F
),
TV(
0,
@@ -792,7 +816,8 @@ object TVList {
"",
ProgramType.F,
false,
mustToken = false
mustToken = false,
0.7F
),
TV(
0,
@@ -805,7 +830,8 @@ object TVList {
"",
ProgramType.F,
false,
mustToken = false
mustToken = false,
0.7F
),
),
"国际" to listOf(
@@ -820,7 +846,8 @@ object TVList {
"2022575001",
ProgramType.Y_PROTO,
false,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -833,7 +860,8 @@ object TVList {
"2022574901",
ProgramType.Y_PROTO,
false,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -846,7 +874,8 @@ object TVList {
"2022574801",
ProgramType.Y_PROTO,
false,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -859,7 +888,8 @@ object TVList {
"2022574601",
ProgramType.Y_PROTO,
false,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -872,7 +902,8 @@ object TVList {
"2022571701",
ProgramType.Y_PROTO,
false,
mustToken = false
mustToken = false,
0.5F
),
TV(
0,
@@ -885,7 +916,8 @@ object TVList {
"2022574701",
ProgramType.Y_PROTO,
false,
mustToken = false
mustToken = false,
0.5F
),
)
)
@@ -316,10 +316,11 @@ object Request {
val request = LiveInfoRequest(data)
call = request.let {
yspApiService.getLiveInfo(
"guid=${YSP.getGuid()}; gr_user_id=261eecf2-0ce4-4316-a6a1-7171e3de7389; $cookie; newLogin=1; nseqId=${YSP.nseqId}; nrequest-id=${YSP.nrequest_id}",
"guid=${YSP.getGuid()}; gr_user_id=1; $cookie; newLogin=1; nseqId=${YSP.nseqId}; nrequest-id=${YSP.nrequest_id}",
YSP.token,
YSP.yspsdkinput,
YSP.openapi_signature,
YSP.yspticket,
"${YSP.nseqId}",
YSP.nrequest_id,
"519748109",
+1 -1
View File
@@ -1 +1 @@
{"version_code": 33619968, "version_name": "v2.1.0"}
{"version_code": 33620224, "version_name": "v2.1.1"}