isMute
查询静音状态
isMute 是 SUDRTGameAudioSession 协议中的一个同步查询方法。它用于获取当前游戏引擎的软件静音状态。该状态反映了 App 是否通过 SDK 接口禁用了游戏音频输出,而不代表 iOS 系统硬件静音键的状态。
方法声明
objc
/**
* 查询当前游戏音频是否处于静音状态。
* @return YES 表示已静音,NO 表示正在播放。
*/
- (BOOL)isMute;运行行为
- 逻辑状态同步:该方法返回的是通过
mute:方法设置的逻辑开关值。 - 优先级独立:即使
getVolumeFactor返回1.0(最大音量),如果isMute返回YES,游戏依然不会发出声音。 - 软硬隔离:此方法仅反馈 SDK 内部的静音标志。如果用户拨动了 iPhone 侧边的物理静音键,
isMute可能仍返回NO(取决于音频选项中是否配置了SUDRT_KEY_AUDIO_OBEY_MUTE_SWITCH)。
代码示例
用于在 App UI 界面上同步静音按钮的状态:
objc
- (void)updateMuteButtonState {
// 1. 获取当前 SDK 的静音状态
BOOL muted = [self.audioSession isMute];
// 2. 根据状态切换图标(例如:喇叭图标 vs 禁音图标)
UIImage *icon = muted ? [UIImage imageNamed:@"icon_audio_off"] : [UIImage imageNamed:@"icon_audio_on"];
[self.muteButton setImage:icon forState:UIControlStateNormal];
NSLog(@"当前游戏静音状态: %@", muted ? @"已静音" : @"播放中");
}注意事项
- 初始化状态:在未调用
mute:之前,SDK 的默认状态通常为NO(不静音)。 - 与系统静音区别:App 开发者应注意区分“App 业务静音”与“系统硬件静音”。如果需要确保游戏在任何情况下都跟随系统静音键,请查阅
SUDRT_KEY_AUDIO_OBEY_MUTE_SWITCH配置。 - 调用建议:在执行复杂的音频切换逻辑前,先通过
isMute进行状态判定,可以避免重复调用mute:带来的性能开销。