From 8d4979b4840d7c5f9f3129501cfb51a52bc54cbd Mon Sep 17 00:00:00 2001 From: fuenmao <980740792@qq.com> Date: Tue, 10 Dec 2024 08:29:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=86=E9=A2=91=E9=80=BB=E8=BE=91=E9=87=8D?= =?UTF-8?q?=E6=96=B0=E6=A2=B3=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lib/pages/metting/meeting_main_logic.dart | 37 +++++++++++-------- .../lib/pages/metting/meeting_main_view.dart | 14 +++---- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/wgshare/lib/pages/metting/meeting_main_logic.dart b/wgshare/lib/pages/metting/meeting_main_logic.dart index 79e8cb3..0e82601 100644 --- a/wgshare/lib/pages/metting/meeting_main_logic.dart +++ b/wgshare/lib/pages/metting/meeting_main_logic.dart @@ -144,11 +144,6 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{ /// 关闭发言权限 Future doHttpCancelSpeak() async { await getClient().cancelSpeak(state.meetingRoomInfo.value!.id, state.meetingRoomInfo.value!.roomNum, UserStore.to.userInfoEntity.value!.uid); - /*setClientRole("观众"); - setMicrophoneOpen(false); - setCameraOpen(false); - setScreenShareOpen(false); - changePageState(0);*/ } /// ------------------------------------------------------------------------------麦克风相关(操作) @@ -159,22 +154,13 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{ /// ------------------------------------------------------------------------------视频-屏幕相关(操作) /// 用户开闭摄像头 - Future doHttpSetCamer() async { - await getClient().setCamera(state.roomNumber.value, state.isOpenCamera.value, UserStore.to.userInfoEntity.value!.uid); + Future doHttpSetCamer(bool isOpenCamera) async { + await getClient().setCamera(state.roomNumber.value, isOpenCamera, UserStore.to.userInfoEntity.value!.uid); } /// 设置视频是否开启 void setCameraOpen(bool isOpen){ state.isOpenCamera.value = isOpen; - doHttpSetCamer(); - } - - /// 挂断视频 - void hangUpVideo(){ - stopPreview(); - state.isOpenCamera.value = false; - changePageState(0); - doHttpSetCamer(); } /// 获取当前全员观看主播 @@ -268,6 +254,7 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{ if(UserStore.to.userInfoEntity.value!.uid == meetingRoomUser.uid){ state.isSpeak.value = true; state.isOpenMicrophone.value = true; + // 设置声网SDK角色为主播 setClientRole("主播"); debugPrint("wgs输出===:Socket-开启发言权限:主播"); } @@ -284,8 +271,19 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{ state.isSpeak.value = false; state.isOpenMicrophone.value = false; state.isOpenCamera.value = false; + + // 设置声网SDK角色为观众 setClientRole("观众"); + // 取消发布视频流 + muteLocalVideoStream(true); + // 停止本地预览 + stopPreview(); + // 关闭本地预览悬浮窗 + state.floating.value?.close(); changePageState(0); + state.isSelf.value = false; + state.remoteUid.value = ""; + debugPrint("wgs输出===:Socket-关闭发言权限:观众"); } } @@ -362,6 +360,7 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{ for(var j = 0; j < state.cacheUsers.value.length; j++){ if(state.cacheUsers.value[j].uid == uidStr){ state.cacheUsers.value.removeAt(j); + doHttpGetTvAnchor(); } } } @@ -437,6 +436,12 @@ class MeetingMainLogic extends GetxController with RequestToolMixin{ if(meetingRoomUser.uid == UserStore.to.userInfoEntity.value!.uid){ state.isOpenCamera.value = false; + // 当前全员观看是自己时 + if(state.isSelf.value == true){ + changePageState(0); + state.isSelf.value = false; + } + // 取消发布视频流 muteLocalVideoStream(true); // 停止本地预览 diff --git a/wgshare/lib/pages/metting/meeting_main_view.dart b/wgshare/lib/pages/metting/meeting_main_view.dart index c5c005d..9092457 100644 --- a/wgshare/lib/pages/metting/meeting_main_view.dart +++ b/wgshare/lib/pages/metting/meeting_main_view.dart @@ -484,9 +484,9 @@ class MeetingMainPageState extends State { onTap: () { if (state.isSpeak.value == true) { if (state.isOpenCamera.value == true) { - logic.setCameraOpen(false); + logic.doHttpSetCamer(false); } else { - logic.setCameraOpen(true); + logic.doHttpSetCamer(true); } } }, @@ -1530,7 +1530,7 @@ class MeetingMainPageState extends State { ), ) : const CircularProgressIndicator(), - Positioned( + /*Positioned( bottom: 110, child: GestureDetector( child: Image.asset( @@ -1539,10 +1539,9 @@ class MeetingMainPageState extends State { height: 50.h, ), onTap: () { - }, ), - ), + ),*/ Positioned( top: 16, right: 16, @@ -1710,7 +1709,7 @@ class MeetingMainPageState extends State { canvas: const VideoCanvas(uid: 0, setupMode: VideoViewSetupMode.videoViewSetupAdd), ), ), - Positioned( + /*Positioned( bottom: 110, child: GestureDetector( child: Image.asset( @@ -1719,10 +1718,9 @@ class MeetingMainPageState extends State { height: 50.h, ), onTap: () { - }, ), - ), + ),*/ Positioned( top: 16, right: 16,