当两个设备在同一场会议中都打开了麦克风,且距离很近时,容易产生啸叫现象。啸叫会引起极度不适,影响用户参会心情和会议效果。
会议中实现 XYRTCEngineDelegate 接口,当会议中出现啸叫时 onHowlingDetected 接口函数会被回调。
当检测到啸叫时,可以:
/**
* 啸叫检测回调
* @param detected 是否检测到啸叫
*/
onHowlingDetected(detected: boolean): void {
Logger.info(TAG, "onHowlingDetected: " + detected);
// 获取设置信息
let xySetting = XYSettingManager.getInstance().getSetting();
// 检查是否需要自动处理啸叫
if (xySetting.autoMuteWhenCheckEcho &&
detected &&
!this.xyCallToolbarViewModel?.xyCallTooBarModel.disableMute) {
if (this.xyCallToolbarViewModel) {
// 保存当前麦克风状态
let audioMute = this.xyCallToolbarViewModel.xyCallTooBarModel.audioMute;
// 自动静音处理
this.xyCallToolbarViewModel.operateAudioMute(
true,
XYSDKAudioMuteReason.User
);
XYRTCEngine.getInstance().speakerMute(true);
// 显示啸叫提示对话框
this.showHowlDialog(audioMute);
} else {
Logger.info(TAG, "onHowlingDetected this.xyCallToolbarViewModel undefined")
}
}
}
/**
* 显示啸叫提示对话框
* @param previousAudioMute 之前的麦克风状态
*/
private showHowlDialog(previousAudioMute: boolean): void {
// 显示提示对话框
// 提示用户检测到啸叫,已自动静音
// 提供恢复音频的选项
}