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}; + } +} +