diff --git a/wgshare/lib/pages/metting/meeting_main_logic.dart b/wgshare/lib/pages/metting/meeting_main_logic.dart index d8bbe4b..ef48ebf 100644 --- a/wgshare/lib/pages/metting/meeting_main_logic.dart +++ b/wgshare/lib/pages/metting/meeting_main_logic.dart @@ -255,6 +255,47 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{ Get.back(); ToastUtils.showSuccess("会议已结束"); }); + + /// 所有用户开闭麦回调 + state.hubConnection.value?.on("OperAllMicr", (e){ + if(e?[0] == true){ + debugPrint("wgs输出===:Socket-全员开麦"); + }else{ + debugPrint("wgs输出===:Socket-全员闭麦"); + } + for(var i = 0; i < state.cacheUsers.value.length; i++){ + state.cacheUsers.value[i].enableMicr = e?[0]; + } + state.users.value = state.cacheUsers.value; + state.isOpenMicrophone.value = e?[0]; + setEnableLocalAudio(e?[0]); + }); + + /// 单独用户开闭麦回调 + state.hubConnection.value?.on("OperMicr", (e){ + var jsonStr = const Utf8Decoder().convert(json.encode(e?[0]).runes.toList()); + var listDynamic = jsonDecode(jsonStr); + MeetingRoomUser meetingRoomUser = MeetingRoomUser.fromJson(listDynamic); + if(meetingRoomUser.enableMicr == true){ + debugPrint("wgs输出===:Socket-单独用户开麦"); + for(MeetingRoomUser mru in state.cacheUsers.value){ + if(mru.uid == meetingRoomUser.uid){ + mru.enableMicr = true; + } + } + state.isOpenMicrophone.value = true; + setEnableLocalAudio(true); + }else{ + debugPrint("wgs输出===:Socket-单独用户闭麦"); + for(MeetingRoomUser mru in state.cacheUsers.value){ + if(mru.uid == meetingRoomUser.uid){ + mru.enableMicr = false; + } + } + state.isOpenMicrophone.value = false; + setEnableLocalAudio(false); + } + }); } /// 加入会议室