Skip to content

isMute

获取音频静音状态

isMute()SUDRTGameAudioSession 接口中的一个同步查询方法。它用于检查当前小游戏引擎的音频输出是否被设置为静音状态。该状态是一个逻辑开关,独立于设备的物理音量按键。


方法声明

java
/**
 * 查询当前游戏实例是否处于静音状态。
 * @return boolean 返回 true 表示当前已静音(无声);返回 false 表示音频正常输出。
 */
boolean isMute();

运行行为

  1. 逻辑状态反馈:该方法反映的是通过 SDK 的 mute(boolean) 方法设置的逻辑状态,而非 Android 系统媒体音量的数值。
  2. 即时响应:这是一个非阻塞的轻量级方法,直接读取内存中的状态位,可以在 UI 渲染循环或状态检查逻辑中频繁调用。
  3. 覆盖范围:当返回 true 时,游戏内所有的背景音乐(BGM)和音效(SFX)都会被抑制,但通常不影响 App 宿主层自身的音频播放。

代码示例

在 App 的设置界面初始化时,同步开关状态:

java
// 获取音频会话控制对象
SUDRTGameAudioSession audioSession = mGameHandle.getAudioSession();

// 根据游戏内部静音状态初始化 UI 开关
boolean currentMuteStatus = audioSession.isMute();
muteSwitch.setChecked(currentMuteStatus);

Log.d("SudAudio", "当前游戏静音状态: " + (currentMuteStatus ? "开启" : "关闭"));

注意事项

  • 硬件开关关联:在某些配置下,如果开启了 KEY_AUDIO_OBEY_MUTE_SWITCH,物理静音键可能会影响此返回结果,具体取决于初始化时的 AudioOptions
  • 默认值:在未调用 mute(true) 之前,该方法默认通常返回 false(即默认有声)。
  • 与音量因子的区别isMute() 是一个布尔开关,而 getVolumeFactor() 返回的是具体的音量比例(0.0-1.0)。即使音量因子设为 1.0,只要 isMute()true,依然没有声音。