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 ### v2.1.0
* 恢復播放 * 恢復播放
+1
View File
@@ -4,3 +4,4 @@
/CMakeFiles/ /CMakeFiles/
/Makefile /Makefile
/src/main/cpp/native.c /src/main/cpp/native.c
/src/main/cpp/aes.c
+3 -1
View File
@@ -21,7 +21,9 @@ if (IS_SO_BUILD)
SHARED SHARED
# Provides a relative path to your source file(s). # 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( 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 { dependencies {
// minSdk17 // minSdk17
@@ -106,11 +110,13 @@ dependencies {
implementation "androidx.media3:media3-ui:$media3_version" implementation "androidx.media3:media3-ui:$media3_version"
// For media playback using ExoPlayer // For media playback using ExoPlayer
implementation ("com.google.guava:guava:31.1-android") implementation("com.google.guava:failureaccess:$failureaccess_version")
implementation ("androidx.media3:media3-common:$media3_version") { implementation("com.google.guava:guava:$guava_version")
exclude group: 'com.google.common', module: 'guava' 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 // For HLS playback support with ExoPlayer
implementation "androidx.media3:media3-exoplayer-hls:$media3_version" implementation "androidx.media3:media3-exoplayer-hls:$media3_version"
@@ -120,7 +126,7 @@ dependencies {
implementation 'com.google.protobuf:protobuf-kotlin:3.25.1' implementation 'com.google.protobuf:protobuf-kotlin:3.25.1'
// Gson 2.10.1 and older: API level 19 // 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") { implementation("com.squareup.retrofit2:converter-gson:$retrofit2_version") {
exclude group: 'com.google.code.gson', module: 'gson' exclude group: 'com.google.code.gson', module: 'gson'
} }
@@ -144,7 +150,19 @@ dependencies {
configurations.configureEach { configurations.configureEach {
resolutionStrategy { resolutionStrategy {
force 'com.google.code.gson:gson:2.10.1' force("com.google.code.gson:gson:$gson_version")
force 'com.google.guava:guava:31.1-android' 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"
}
}
} }
} }
+7 -1
View File
@@ -18,4 +18,10 @@
# If you keep the line number information, uncomment this to # If you keep the line number information, uncomment this to
# hide the original source file name. # hide the original source file name.
#-renamesourcefileattribute SourceFile #-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 { playerView?.player?.run {
setMediaItem(MediaItem.fromUri(tvViewModel.getVideoUrlCurrent())) setMediaItem(MediaItem.fromUri(tvViewModel.getVideoUrlCurrent()))
prepare() 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 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 hash(data: ByteArray): ByteArray?
external fun hash2(data: ByteArray): ByteArray? external fun hash2(data: ByteArray): ByteArray?
@@ -1,6 +1,7 @@
package com.lizongying.mytv.api package com.lizongying.mytv.api
import android.content.Context import android.content.Context
import android.util.Log
import com.lizongying.mytv.SP import com.lizongying.mytv.SP
import com.lizongying.mytv.Utils.getDateTimestamp import com.lizongying.mytv.Utils.getDateTimestamp
import com.lizongying.mytv.models.TVViewModel import com.lizongying.mytv.models.TVViewModel
@@ -57,6 +58,7 @@ object YSP {
var yspsdkinput = "" var yspsdkinput = ""
var openapi_signature = "" var openapi_signature = ""
var yspticket = ""
var nseqId = 1 var nseqId = 1
var nrequest_id = "" var nrequest_id = ""
@@ -85,6 +87,8 @@ object YSP {
encryptor.encrypt(cnlid, timeStr, appVer, guid, platform) encryptor.encrypt(cnlid, timeStr, appVer, guid, platform)
randStr = getRand() randStr = getRand()
signature = getSignature() 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"}""" 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("Yspplayertoken") token: String,
@Header("Yspsdkinput") Yspsdkinput: String, @Header("Yspsdkinput") Yspsdkinput: String,
@Header("yspsdksign") yspsdksign: String, @Header("yspsdksign") yspsdksign: String,
@Header("Yspticket") Yspticket: String,
@Header("Seqid") Seqid: String, @Header("Seqid") Seqid: String,
@Header("Request-Id") RequestId: String, @Header("Request-Id") RequestId: String,
@Header("Yspappid") Yspappid: String="519748109", @Header("Yspappid") Yspappid: String="519748109",
@@ -15,6 +15,7 @@ data class TV(
var programType: ProgramType, var programType: ProgramType,
var needToken: Boolean = false, var needToken: Boolean = false,
var mustToken: Boolean = false, var mustToken: Boolean = false,
var volume: Float = 0.1F,
) : Serializable { ) : Serializable {
override fun toString(): String { override fun toString(): String {
@@ -21,7 +21,8 @@ object TVList {
"2022576801", "2022576801",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
false, false,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -34,7 +35,8 @@ object TVList {
"2022576701", "2022576701",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
true, true,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -47,7 +49,8 @@ object TVList {
"2022576501", "2022576501",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
true, true,
mustToken = true mustToken = true,
0.5F
), ),
TV( TV(
0, 0,
@@ -60,7 +63,8 @@ object TVList {
"2022576601", "2022576601",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
false, false,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -73,7 +77,8 @@ object TVList {
"2022576401", "2022576401",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
true, true,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -86,7 +91,8 @@ object TVList {
"2013693901", "2013693901",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
true, true,
mustToken = true mustToken = true,
0.5F
), ),
TV( TV(
0, 0,
@@ -99,7 +105,8 @@ object TVList {
"2022576201", "2022576201",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
true, true,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -112,7 +119,8 @@ object TVList {
"2022576101", "2022576101",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
true, true,
mustToken = true mustToken = true,
0.5F
), ),
TV( TV(
0, 0,
@@ -125,7 +133,8 @@ object TVList {
"2022576001", "2022576001",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
true, true,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -138,7 +147,8 @@ object TVList {
"2022573001", "2022573001",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
true, true,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -151,7 +161,8 @@ object TVList {
"2022575901", "2022575901",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
true, true,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -164,7 +175,8 @@ object TVList {
"2022575801", "2022575801",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
true, true,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -177,7 +189,8 @@ object TVList {
"2022575701", "2022575701",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
false, false,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -190,7 +203,8 @@ object TVList {
"2022575601", "2022575601",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
true, true,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -203,7 +217,8 @@ object TVList {
"2022575501", "2022575501",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
true, true,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -216,7 +231,8 @@ object TVList {
"2022575401", "2022575401",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
true, true,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -229,7 +245,8 @@ object TVList {
"2022575301", "2022575301",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
true, true,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -242,7 +259,8 @@ object TVList {
"2022576301", "2022576301",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
true, true,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -255,7 +273,8 @@ object TVList {
"2022575201", "2022575201",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
true, true,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -268,7 +287,8 @@ object TVList {
"2020603421", "2020603421",
ProgramType.Y_JCE, ProgramType.Y_JCE,
false, false,
mustToken = false mustToken = false,
0.8F
), ),
TV( TV(
0, 0,
@@ -738,7 +758,8 @@ object TVList {
"2019927403", "2019927403",
ProgramType.Y_JCE, ProgramType.Y_JCE,
true, true,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -751,7 +772,8 @@ object TVList {
"2022606701", "2022606701",
ProgramType.Y_JCE, ProgramType.Y_JCE,
true, true,
mustToken = false mustToken = false,
0.8F
), ),
TV( TV(
0, 0,
@@ -764,7 +786,8 @@ object TVList {
"2022823801", "2022823801",
ProgramType.Y_JCE, ProgramType.Y_JCE,
true, true,
mustToken = false mustToken = false,
0.6F
), ),
), ),
"港澳台" to listOf( "港澳台" to listOf(
@@ -779,7 +802,8 @@ object TVList {
"", "",
ProgramType.F, ProgramType.F,
false, false,
mustToken = false mustToken = false,
0.7F
), ),
TV( TV(
0, 0,
@@ -792,7 +816,8 @@ object TVList {
"", "",
ProgramType.F, ProgramType.F,
false, false,
mustToken = false mustToken = false,
0.7F
), ),
TV( TV(
0, 0,
@@ -805,7 +830,8 @@ object TVList {
"", "",
ProgramType.F, ProgramType.F,
false, false,
mustToken = false mustToken = false,
0.7F
), ),
), ),
"国际" to listOf( "国际" to listOf(
@@ -820,7 +846,8 @@ object TVList {
"2022575001", "2022575001",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
false, false,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -833,7 +860,8 @@ object TVList {
"2022574901", "2022574901",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
false, false,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -846,7 +874,8 @@ object TVList {
"2022574801", "2022574801",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
false, false,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -859,7 +888,8 @@ object TVList {
"2022574601", "2022574601",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
false, false,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -872,7 +902,8 @@ object TVList {
"2022571701", "2022571701",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
false, false,
mustToken = false mustToken = false,
0.5F
), ),
TV( TV(
0, 0,
@@ -885,7 +916,8 @@ object TVList {
"2022574701", "2022574701",
ProgramType.Y_PROTO, ProgramType.Y_PROTO,
false, false,
mustToken = false mustToken = false,
0.5F
), ),
) )
) )
@@ -316,10 +316,11 @@ object Request {
val request = LiveInfoRequest(data) val request = LiveInfoRequest(data)
call = request.let { call = request.let {
yspApiService.getLiveInfo( 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.token,
YSP.yspsdkinput, YSP.yspsdkinput,
YSP.openapi_signature, YSP.openapi_signature,
YSP.yspticket,
"${YSP.nseqId}", "${YSP.nseqId}",
YSP.nrequest_id, YSP.nrequest_id,
"519748109", "519748109",
+1 -1
View File
@@ -1 +1 @@
{"version_code": 33619968, "version_name": "v2.1.0"} {"version_code": 33620224, "version_name": "v2.1.1"}