Skip to content

mute

设置音频静音状态

mute(boolean)SUDRTGameAudioSession 接口中用于控制游戏声音开关的核心方法。通过该方法,App 可以立即切断或恢复小游戏引擎的所有音频输出,而无需改变手机系统的媒体音量。


方法声明

java
/**
 * 开启或关闭游戏实例的静音模式。
 * @param var1 传入 true 将游戏设置为静音;传入 false 则恢复声音播放。
 */
void mute(boolean var1);

运行行为

  1. 即时拦截:调用 mute(true) 后,SDK 会立即停止向系统的音频混音器发送数据,音频流在逻辑层被截断。
  2. 非持久化:该设置通常仅对当前运行的游戏句柄(Handle)生效。如果重启游戏或更换句柄,状态通常会重置为默认值(通常为有声)。
  3. 独立控制:此方法与 setVolumeFactor(float) 互不干扰。即使你将音量因子设为 1.0,只要调用了 mute(true),依然不会有声音。
  4. 系统解耦:它不会触发 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)