isMute
获取音频静音状态
isMute() 是 SUDRTGameAudioSession 接口中的一个同步查询方法。它用于检查当前小游戏引擎的音频输出是否被设置为静音状态。该状态是一个逻辑开关,独立于设备的物理音量按键。
方法声明
java
/**
* 查询当前游戏实例是否处于静音状态。
* @return boolean 返回 true 表示当前已静音(无声);返回 false 表示音频正常输出。
*/
boolean isMute();运行行为
- 逻辑状态反馈:该方法反映的是通过 SDK 的
mute(boolean)方法设置的逻辑状态,而非 Android 系统媒体音量的数值。 - 即时响应:这是一个非阻塞的轻量级方法,直接读取内存中的状态位,可以在 UI 渲染循环或状态检查逻辑中频繁调用。
- 覆盖范围:当返回
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,依然没有声音。