mute
设置音频静音状态
mute(boolean) 是 SUDRTGameAudioSession 接口中用于控制游戏声音开关的核心方法。通过该方法,App 可以立即切断或恢复小游戏引擎的所有音频输出,而无需改变手机系统的媒体音量。
方法声明
java
/**
* 开启或关闭游戏实例的静音模式。
* @param var1 传入 true 将游戏设置为静音;传入 false 则恢复声音播放。
*/
void mute(boolean var1);运行行为
- 即时拦截:调用
mute(true)后,SDK 会立即停止向系统的音频混音器发送数据,音频流在逻辑层被截断。 - 非持久化:该设置通常仅对当前运行的游戏句柄(Handle)生效。如果重启游戏或更换句柄,状态通常会重置为默认值(通常为有声)。
- 独立控制:此方法与
setVolumeFactor(float)互不干扰。即使你将音量因子设为1.0,只要调用了mute(true),依然不会有声音。 - 系统解耦:它不会触发 Android 系统的“静音模式”或“勿扰模式”,仅作用于 SDK 内部。
代码示例
实现一个 UI 开关逻辑,控制游戏声音的启停:
java
// 获取音频会话控制对象
SUDRTGameAudioSession audioSession = mGameHandle.getAudioSession();
// 用户点击了“静音”按钮
muteButton.setOnClickListener(v -> {
// 切换当前状态
boolean isCurrentlyMute = audioSession.isMute();
boolean newStatus = !isCurrentlyMute;
// 执行静音/取消静音操作
audioSession.mute(newStatus);
// 更新 UI 图标
updateMuteIcon(newStatus);
Log.d("SudAudio", "用户操作静音: " + newStatus);
});注意事项
- 后台行为:通常建议在 App 切入后台时,通过此方法配合
setAudioInterruption(true)来确保游戏不会在后台发出意外声响。 - 物理按键一致性:如果用户通过手机物理音量键将音量调至最低,虽然系统表现为静音,但
isMute()的逻辑状态可能仍为false,请注意区分这两者。 - 开局预设:如果你的 App 默认开启“静音开局”,请在
gameHandle.start()之后立即调用mute(true)。