getAudioInterruption
获取音频中断状态
getAudioInterruption 是 SUDRTGameAudioSession 接口中的一个同步查询方法。它用于检查当前游戏音频是否处于“被动中断”状态(如由于电话呼入、App 退至后台或第三方语音应用抢占音频焦点而导致的挂起)。
方法声明
java
/**
* 获取当前游戏实例的音频中断状态。
* @return boolean 返回 true 表示音频当前正处于中断挂起状态;返回 false 表示音频处于活跃运行状态。
*/
boolean getAudioInterruption();运行行为
- 状态映射:该方法返回的是最近一次通过
setAudioInterruption(boolean)设置的逻辑状态。 - 音频流监测:当返回
true时,意味着 SDK 内部的音频渲染器(Renderer)已停止工作,不再占用系统的AudioTrack资源。 - 恢复依据:App 通常在
onResume或通话结束后调用此方法进行检查,以决定是否需要恢复音频输出。
代码示例
在 App 的全局音频管理逻辑中校验状态:
java
// 获取音频会话控制对象
SUDRTGameAudioSession audioSession = mGameHandle.getAudioSession();
// 模拟从后台回到前台时的检查
@Override
protected void onResume() {
super.onResume();
// 如果发现音频仍处于中断状态,且当前已具备播放条件,则恢复它
if (audioSession.getAudioInterruption()) {
Log.d("SudAudio", "检测到音频处于中断状态,正在尝试恢复...");
audioSession.setAudioInterruption(false);
}
}注意事项
与 isMute 的区别:
isMute()返回的是用户主观设置的“静音”开关。getAudioInterruption()返回的是由于外部干扰或系统策略导致的“挂起”状态。资源释放标志:在 Android 平台上,当此状态为
true时,通常意味着 App 已经释放了部分音频硬件占用,这对于通过系统检测(如 OOM 或电量优化)非常重要。默认值:在游戏初始化完成后,该状态默认为
false。