onInit method
Called immediately after the widget is allocated in memory. You might use this to initialize something for the controller.
Implementation
@override
void onInit() {
super.onInit();
_observer = TUIRoomObserver(
onUserVoiceVolumeChanged: (volumeMap) {
if (!RoomStore.to.isSharing.value ||
_speakingUserUpdateTimer?.isActive == true) {
return;
}
var speakingUserId = volumeMap.entries
.firstWhere(
(entry) => entry.value >= 10,
orElse: () => const MapEntry<String, int>('', -1),
)
.key;
if (speakingUserId.isEmpty) {
if (!isDraggableWidgetVisible.value) {
return;
}
isDraggableWidgetVisible.value = false;
speakingUser.value = UserModel();
return;
}
speakingUser.value =
RoomStore.to.getUserById(speakingUserId) ?? UserModel();
isDraggableWidgetVisible.value = true;
_speakingUserUpdateTimer = Timer(const Duration(seconds: 5), () {});
},
);
RoomEngineManager().addObserver(_observer);
}