1 概述
在 K 歌场景中,经常需要拉多路流并显示其中正在讲话的用户,我们需要甄别用户是否说话、说话音量大小(音浪),并在 UI 上展示,如图:
2 源码下载
参考文件: src/Examples/AdvancedAudioProcessing/SoundLevelAndAudioSpectrum
3 环境准备
在监听音量变化功能之前,需确保:
- 已在项目中集成 ZEGO Express SDK,实现基本的实时音视频功能,详情请参考 快速开始 - 集成 和 快速开始 - 实现流程。
- 已在 ZEGO 控制台 创建项目,并申请有效的 AppID,详情请参考 控制台 - 项目管理 中的“项目信息”。
4 使用步骤
4.1 监听音浪回调接口
注册 soundLevelUpdate 回调,接收流音量大小的变化。
音浪即某条流音量的大小。
zg.on('soundLevelUpdate', (streamList) => {
streamList.forEach(stream => {
stream.type == 'push' && $('#soundLevel').html(Math.round(stream.soundLevel) + '');
console.warn(`${stream.type} ${stream.streamID}, soundLevel: ${stream.soundLevel}`);
});
});
4.2 启动音浪监听
调用 setSoundLevelDelegate接口启动监听音量大小,设置音浪回调间隔时间。
zg.setSoundLevelDelegate(true, 1000);
4.3 停止声浪监听
调用 setSoundLevelDelegate 接口停止监听音量大小。
zg.setSoundLevelDelegate(false);
5 API 参考列表
方法 | 描述 |
---|---|
soundLevelUpdate | 音浪回调 |
setSoundLevelDelegate | 设置是否监听音浪及音浪回调间隔时间 |
结语
注册即构ZEGO开发者帐号,快速开始。