From 520bc8e1bbc157ea5565b648741f40d0eeeaa82b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=A2=81=E5=B0=8F=E6=B1=9F?= <461355754@qq.com>
Date: Mon, 3 Nov 2025 18:34:07 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=BE=E7=89=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/AndroidProjectSystem.xml | 6 ++
.idea/deploymentTargetSelector.xml | 10 +++
.idea/runConfigurations.xml | 17 ++++
.idea/vcs.xml | 6 ++
.../xscm/moduleutil/rtc/VolumeManager.java | 77 ++++++++++++++++++
.../main/res/mipmap-hdpi/accompany_off.webp | Bin 0 -> 858 bytes
.../main/res/mipmap-hdpi/accompany_on.webp | Bin 0 -> 822 bytes
.../src/main/res/mipmap-hdpi/icon_liang.webp | Bin 0 -> 1282 bytes
.../main/res/mipmap-hdpi/muisc_reward.webp | Bin 0 -> 738 bytes
.../main/res/mipmap-hdpi/muisc_switch.webp | Bin 0 -> 556 bytes
.../src/main/res/mipmap-hdpi/muisc_tyt.webp | Bin 0 -> 692 bytes
.../main/res/mipmap-xhdpi/accompany_off.webp | Bin 0 -> 1218 bytes
.../main/res/mipmap-xhdpi/accompany_on.webp | Bin 0 -> 1186 bytes
.../src/main/res/mipmap-xhdpi/icon_liang.webp | Bin 0 -> 1610 bytes
.../main/res/mipmap-xhdpi/muisc_reward.webp | Bin 0 -> 988 bytes
.../main/res/mipmap-xhdpi/muisc_switch.webp | Bin 0 -> 646 bytes
.../src/main/res/mipmap-xhdpi/muisc_tyt.webp | Bin 0 -> 754 bytes
.../main/res/mipmap-xxhdpi/accompany_off.webp | Bin 0 -> 1988 bytes
.../main/res/mipmap-xxhdpi/accompany_on.webp | Bin 0 -> 1932 bytes
.../main/res/mipmap-xxhdpi/icon_liang.webp | Bin 0 -> 2912 bytes
.../main/res/mipmap-xxhdpi/muisc_reward.webp | Bin 0 -> 1618 bytes
.../main/res/mipmap-xxhdpi/muisc_switch.webp | Bin 0 -> 1086 bytes
.../src/main/res/mipmap-xxhdpi/muisc_tyt.webp | Bin 0 -> 1250 bytes
.../ExampleInstrumentedTest.java | 26 ++++++
.../moduletablayout/ExampleUnitTest.java | 17 ++++
25 files changed, 159 insertions(+)
create mode 100644 .idea/AndroidProjectSystem.xml
create mode 100644 .idea/deploymentTargetSelector.xml
create mode 100644 .idea/runConfigurations.xml
create mode 100644 .idea/vcs.xml
create mode 100644 moduleUtil/src/main/java/com/xscm/moduleutil/rtc/VolumeManager.java
create mode 100644 moduleUtil/src/main/res/mipmap-hdpi/accompany_off.webp
create mode 100644 moduleUtil/src/main/res/mipmap-hdpi/accompany_on.webp
create mode 100644 moduleUtil/src/main/res/mipmap-hdpi/icon_liang.webp
create mode 100644 moduleUtil/src/main/res/mipmap-hdpi/muisc_reward.webp
create mode 100644 moduleUtil/src/main/res/mipmap-hdpi/muisc_switch.webp
create mode 100644 moduleUtil/src/main/res/mipmap-hdpi/muisc_tyt.webp
create mode 100644 moduleUtil/src/main/res/mipmap-xhdpi/accompany_off.webp
create mode 100644 moduleUtil/src/main/res/mipmap-xhdpi/accompany_on.webp
create mode 100644 moduleUtil/src/main/res/mipmap-xhdpi/icon_liang.webp
create mode 100644 moduleUtil/src/main/res/mipmap-xhdpi/muisc_reward.webp
create mode 100644 moduleUtil/src/main/res/mipmap-xhdpi/muisc_switch.webp
create mode 100644 moduleUtil/src/main/res/mipmap-xhdpi/muisc_tyt.webp
create mode 100644 moduleUtil/src/main/res/mipmap-xxhdpi/accompany_off.webp
create mode 100644 moduleUtil/src/main/res/mipmap-xxhdpi/accompany_on.webp
create mode 100644 moduleUtil/src/main/res/mipmap-xxhdpi/icon_liang.webp
create mode 100644 moduleUtil/src/main/res/mipmap-xxhdpi/muisc_reward.webp
create mode 100644 moduleUtil/src/main/res/mipmap-xxhdpi/muisc_switch.webp
create mode 100644 moduleUtil/src/main/res/mipmap-xxhdpi/muisc_tyt.webp
create mode 100644 moduletablayout/src/androidTest/java/com/example/moduletablayout/ExampleInstrumentedTest.java
create mode 100644 moduletablayout/src/test/java/com/example/moduletablayout/ExampleUnitTest.java
diff --git a/.idea/AndroidProjectSystem.xml b/.idea/AndroidProjectSystem.xml
new file mode 100644
index 00000000..4a53bee8
--- /dev/null
+++ b/.idea/AndroidProjectSystem.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
new file mode 100644
index 00000000..b268ef36
--- /dev/null
+++ b/.idea/deploymentTargetSelector.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
new file mode 100644
index 00000000..16660f1d
--- /dev/null
+++ b/.idea/runConfigurations.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 00000000..94a25f7f
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/rtc/VolumeManager.java b/moduleUtil/src/main/java/com/xscm/moduleutil/rtc/VolumeManager.java
new file mode 100644
index 00000000..113e269a
--- /dev/null
+++ b/moduleUtil/src/main/java/com/xscm/moduleutil/rtc/VolumeManager.java
@@ -0,0 +1,77 @@
+package com.xscm.moduleutil.rtc;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * com.xscm.moduleutil.rtc
+ * qx
+ * 2025/11/3
+ * 声网声音管理类
+ */
+public class VolumeManager {
+ private static VolumeManager instance;
+ private Map userMusicVolumeMap = new HashMap<>();
+ private Map userPlayoutVolumeMap = new HashMap<>();
+ private Map userPlayoutBzMap = new HashMap<>();
+ private String currentUserId;
+
+ private VolumeManager() {}
+
+ public static VolumeManager getInstance() {
+ if (instance == null) {
+ synchronized (VolumeManager.class) {
+ if (instance == null) {
+ instance = new VolumeManager();
+ }
+ }
+ }
+ return instance;
+ }
+
+ public void setCurrentUserId(String userId) {
+ this.currentUserId = userId;
+ }
+
+ public void saveCurrentVolumes(int musicVolume, int playoutVolume) {
+ if (currentUserId != null) {
+ userMusicVolumeMap.put(currentUserId, musicVolume);
+ userPlayoutVolumeMap.put(currentUserId, playoutVolume);
+ }
+ }
+ public void clearCurrentVolumes() {
+ if (currentUserId != null) {
+ userMusicVolumeMap.remove(currentUserId);
+ userPlayoutVolumeMap.remove(currentUserId);
+ }
+ userPlayoutBzMap.clear();
+ }
+
+ public void saveBz(String userId, boolean bz){
+ userPlayoutBzMap.clear();
+ userPlayoutBzMap.put(userId, bz);
+ }
+
+ public boolean getBz(String userId){
+ Boolean bz = userPlayoutBzMap.get(userId);
+ if (bz == null) {
+ bz = true; // 默认值原唱 false 伴奏
+ }
+ return bz;
+ }
+
+ public int[] getUserVolumes(String userId) {
+ Integer musicVolume = userMusicVolumeMap.get(userId);
+ Integer playoutVolume = userPlayoutVolumeMap.get(userId);
+
+ if (musicVolume == null) {
+ musicVolume = 100; // 默认值
+ }
+ if (playoutVolume == null) {
+ playoutVolume = 50; // 默认值
+ }
+
+ return new int[]{musicVolume, playoutVolume};
+ }
+}
+
diff --git a/moduleUtil/src/main/res/mipmap-hdpi/accompany_off.webp b/moduleUtil/src/main/res/mipmap-hdpi/accompany_off.webp
new file mode 100644
index 0000000000000000000000000000000000000000..9c75fd1d3abca472f946fed0ae093f1fdb095ab4
GIT binary patch
literal 858
zcmV-g1Eu^@Nk&Fe0{{S5MM6+kP&il$0000G0000T0012T06|PpNLc{@00EF2$+l`c
z=f3ZX(PIdJl>jrv!OSe1l>%C5F}ln$^=z>oeV8%!x#uf{h?sy>+nBugz@1M&zkj)N
zVBw@j8fG@_xl&s+4Q8lA4cgTu{*f}>ccd`o#
zN>)TV$3nGMKu{1Q3WLk5l;(T@l>hl=M(R5}5HO<{6zT15On!z6C<=%QD32#CZb1gj
zqeT5Z|9~oLffR1PD}Y#x3gY#zAh8T2zWNRzSWZ^H{S+jYP~ZHd4o?t-S2rbEMpU@I
zm*{W<=$3`8074zL{+>7KDJW4;i3<8~Vq&vr6U)H*XFmqs2Q1grxX+&dx_u6o-eE3x}>Nh+?U?RxY(
zApE(vdwNxtQe)!0T{qq~o3E~HpF5$EY5@RNP&gpc0RR9H3jmz~DjonH06u*%l1HSY
zA)z`h5TvHU#XU1%9O_+YNaD0RHZe-{1^UE2}+IyMGw=%UrSiP6yqP
zkx{
z^fDA0!}_uy->q1QsP{=1Jx2)<(z(e=_Q6q;##)#9&RYQEv+rp8ghz7~u$z}#^Mzw}
zB{*cgLu>ps3&|z31ScbgKks53oyp10f(1`#m<7MN}sJpTCi>hj;m$NQVp
z7BSU%=-sv?0ByfM)|m>o_@jUX!dv=25vJyXge$xPovIF~xsk(_7k}<@mG43xBoq=M
za%Y{?v;d*dASjQf%({Q#M8*BuZkbahKrtc;hte%?5F#2#ylfua2E_`}dhc;b#3F!w
zPXuuZ-TVhAX5jNOKwRSgsz7m}mETJCfq(>#kWBwJKzz-wL9tgzA1VMu1C;-`X&v7|
z5Cw!jAKI|gTp0-wtvs=J!_3a+@P+}<`u)dwGpo9k^WXs_`I#mV)0we_G73Z~M
zHu0^1UvB=>P{+lmkM`I4QmqGHtUGdx$J4(mglPT%=Dn@0O!m0
zGySstxAvK=DALO+d#LZ?2NIDIHKJVJ0yzdmcD#S4@9foy6v-|7L4#nX40vN|?`d4IwfW00hY+i@Y$Ix&&Uwjw
zzIqfNf6XfI7{4{jFT}t=3G-g9JOBL;E6Gov2E4uLUiE+F*6;1SZZ*CAMmQ9mHm3hk
z4sI_4C{dceuj?^=+w!RzGn;`jl>WjVQ8^jgxt0oz$nETN%{*sGJju2KG_RRKBezW)
zVVGn3GpM@`$GH0hFo=h$-PRM)4qP;vi!nv-t`&d
zzmEh1@(L