[mirotalksfu] - improve AudioLevelObservation

هذا الالتزام موجود في:
Miroslav Pejic
2022-08-03 13:49:34 +02:00
الأصل b31fd294ba
التزام 7a77465f59
2 ملفات معدلة مع 17 إضافات و9 حذوفات

عرض الملف

@@ -11,6 +11,7 @@ module.exports = class Room {
this.router = null;
this.audioLevelObserver = null;
this.audioLevelObserverEnabled = false;
this.audioLastUpdateTime = 0;
this.io = io;
this._isLocked = false;
this._roomPassword = null;
@@ -52,10 +53,21 @@ module.exports = class Room {
});
this.audioLevelObserver.on('volumes', (volumes) => {
this.sendActiveSpeakerVolume(volumes);
});
this.audioLevelObserver.on('silence', () => {
//log.debug('audioLevelObserver', { volume: 'silence' });
return;
});
}
sendActiveSpeakerVolume(volumes) {
if (Date.now() > this.audioLastUpdateTime + 1000) {
this.audioLastUpdateTime = Date.now();
const { producer, volume } = volumes[0];
let audioVolume = Math.round(Math.pow(10, volume / 85) * 10); // 1-10
let audioVolume = Math.round(Math.pow(10, volume / 80) * 10); // 1-10
if (audioVolume > 2) {
//log.debug('PEERS', this.peers);
// log.debug('PEERS', this.peers);
this.peers.forEach((peer) => {
peer.producers.forEach((peerProducer) => {
if (
@@ -64,17 +76,13 @@ module.exports = class Room {
peer.peer_audio === true
) {
let data = { peer_name: peer.peer_name, peer_id: peer.id, audioVolume: audioVolume };
//log.debug('audioLevelObserver', data);
// log.debug('audioLevelObserver id [' + this.id + ']', data);
this.broadCast(0, 'audioVolume', data);
}
});
});
}
});
this.audioLevelObserver.on('silence', () => {
//log.debug('audioLevelObserver', { volume: 'silence' });
return;
});
}
}
addProducerToAudioLevelObserver(producer) {