在 K 歌場景中,經常需要拉多路流並顯示其中正在講話的用戶,我們需要甄別用戶是否說話、說話音量大小(音浪),併在 UI 上展示。 ...
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 | 設置是否監聽音浪及音浪回調間隔時間 |
結語
獲取本文的Demo、開發文檔、技術支持。
獲取SDK的商務活動、熱門產品。
註冊即構ZEGO開發者帳號,快速開始。