功能描述
本文主要介绍如何做音量大小的检测。
音量大小的判定主要应用在:
- 检测本地麦克风的音量
- 检测远端用户的音量
实现步骤
监听RoomCallback.mcu_peerconnection_completed 事件,在该事件里去调用room.audioLevel.start(statsInterval) 开启音量回调方法。
room.addCallback(RoomCallback.mcu_peerconnection_completed, onMCUPeerConnectionCompleted);
function onMCUPeerConnectionCompleted() {
var statsInterval = 500; //sdk语音激励计算频率
//开启音量回调,并设置每 500ms 触发一次事件
room.audioLevel.start(statsInterval).then(audioLevelHandler);
//关闭音量回调
room.audioLevel.stop();
}
function audioLevelHandler() {
var statsInterval = 500; //应用层语音激励显示频率
clearInterval(statsIntervalId);
statsIntervalId = setInterval(
function() {
var participants = room.getParticipants();
if(participants) {
participants.forEach(function(user) {
if(user.audio) {
var volume = user.audio.getAudioLevel();
var isMe = user.id === room.selfUser.id; // 当true时,代表本地麦克风音量。
if (isMe) {
console.log(`my volume: ${volume}`);
} else {
console.log(`user: ${user.id} volume:{volume}`);
}
}
});
}
}, statsInterval);
}