updateActiveUserByTimer method
void
updateActiveUserByTimer()
Implementation
void updateActiveUserByTimer() {
var maxAverageSoundLevel = 0.0;
var activeUserID = '';
rangeSoundLevels.forEach((userID, soundLevels) {
final averageSoundLevel =
soundLevels.reduce((a, b) => a + b) / soundLevels.length;
if (averageSoundLevel > maxAverageSoundLevel) {
activeUserID = userID;
maxAverageSoundLevel = averageSoundLevel;
}
});
if (activeUserID.isEmpty) {
return;
}
if (activeUserID != activeUserIDNotifier.value) {
ZegoLoggerService.logInfo(
'update active user:$activeUserID',
tag: 'live streaming',
subTag: 'controller.minimize.active_user',
);
}
activeUserIDNotifier.value = activeUserID;
if (activeUserIDNotifier.value?.isEmpty ?? true) {
if (!ignoreLocalUser) {
activeUserIDNotifier.value = ZegoUIKit().getLocalUser().id;
}
}
rangeSoundLevels.clear();
}