Skip to content

getGameAudioSession

获取游戏音频会话

getGameAudioSession 用于获取小游戏内部的音频管理接口。通过该接口,宿主 App 可以控制游戏声音的输出策略,例如处理与其他 App 的混音逻辑、强制静音或调节全局音量。


方法声明

objectivec
/**
 * 获取音频会话句柄。
 * 用于管理游戏全局音频状态。
 * @return 返回遵循 SUDRTGameAudioSession 协议的对象。
 */
- (id<SUDRTGameAudioSession>)getGameAudioSession;

参数说明

参数名类型必传描述
--该方法不接受参数。

运行行为

  1. 协议交互:返回的对象遵循 SUDRTGameAudioSession 协议,封装了对底层音频引擎的操作。
  2. 系统集成:该句柄的操作最终会影响 iOS 系统的 AVAudioSession 表现(如音频类别选择、是否遵循静音键等)。
  3. 实时生效:通过该句柄修改的音量或静音状态会立即作用于当前正在播放的所有背景音乐和音效。

代码示例

objectivec
// 1. 获取音频会话句柄
id<SUDRTGameAudioSession> audioSession = [self.gameHandle getGameAudioSession];

if (audioSession) {
    // 2. 场景:用户开启了 App 内部的“静音模式”
    [audioSession setMute:YES];
    
    // 3. 场景:调整游戏全局音量为 50%
    [audioSession setVolume:0.5f];
}

注意事项

  • 初始化时机:建议在 create 成功并进入 WAITING 状态后再获取此句柄。
  • 独立性:此句柄调节的是游戏引擎内部的增益(Gain),不会改变 iOS 系统级(硬件按键控制)的媒体音量。
  • 音频冲突:在处理电话呼入、语音聊天等场景时,App 应配合此句柄的 setMute: 方法来管理音频焦点,避免声音重叠。
  • 生命周期:该句柄的生命周期随 gameHandle 销毁而失效。