点击开启摄像头的时候也弹出申请发言弹窗,添加变量并在回调里优化逻辑

This commit is contained in:
fuenmao 2024-12-18 09:49:31 +08:00
parent 42f0546b49
commit 26937a374d
3 changed files with 19 additions and 5 deletions

View File

@ -327,7 +327,11 @@ class MeetingMainLogic extends GetxController with RequestToolMixin {
} }
if (UserStore.to.userInfoEntity.value!.uid == meetingRoomUser.uid) { if (UserStore.to.userInfoEntity.value!.uid == meetingRoomUser.uid) {
state.isSpeak.value = true; state.isSpeak.value = true;
if(state.defaulOpenState.value == 1){
state.isOpenMicrophone.value = true; state.isOpenMicrophone.value = true;
}else if(state.defaulOpenState.value == 2){
doHttpSetCamer(true);
}
// SDK角色为主播 // SDK角色为主播
setClientRole("主播"); setClientRole("主播");
debugPrint("wgs输出===Socket-开启发言权限:主播"); debugPrint("wgs输出===Socket-开启发言权限:主播");
@ -343,6 +347,7 @@ class MeetingMainLogic extends GetxController with RequestToolMixin {
} }
if (UserStore.to.userInfoEntity.value!.uid == meetingRoomUser.uid) { if (UserStore.to.userInfoEntity.value!.uid == meetingRoomUser.uid) {
state.isSpeak.value = false; state.isSpeak.value = false;
state.defaulOpenState.value = 0;
state.isOpenMicrophone.value = false; state.isOpenMicrophone.value = false;
state.isOpenCamera.value = false; state.isOpenCamera.value = false;
state.isOpenShare.value = false; state.isOpenShare.value = false;

View File

@ -60,6 +60,8 @@ class MeetingMainState {
/// ///
late RxBool isSpeak = false.obs; late RxBool isSpeak = false.obs;
/// 012
late RxInt defaulOpenState = 0.obs;
/// ///
late RxBool isOpenMicrophone = false.obs; late RxBool isOpenMicrophone = false.obs;
/// ///

View File

@ -417,7 +417,7 @@ class MeetingMainPageState extends State<MeetingMainPage> {
if (state.isSpeak.value == false) { if (state.isSpeak.value == false) {
Get.bottomSheet( Get.bottomSheet(
isScrollControlled: true, isScrollControlled: true,
applySpeakPermissionBottomSheet(context)); applySpeakPermissionBottomSheet(context,1));
} else { } else {
if (state.isOpenMicrophone.value == false) { if (state.isOpenMicrophone.value == false) {
logic.doHttpSetMicr(true); logic.doHttpSetMicr(true);
@ -444,7 +444,9 @@ class MeetingMainPageState extends State<MeetingMainPage> {
), ),
SizedBox(height: 4.h), SizedBox(height: 4.h),
Text( Text(
state.isOpenCamera.value == true state.isSpeak.value == false
? '申请发言'
: state.isOpenCamera.value == true
? "关闭视频" ? "关闭视频"
: "开启视频", : "开启视频",
style: TextStyle( style: TextStyle(
@ -454,7 +456,11 @@ class MeetingMainPageState extends State<MeetingMainPage> {
], ],
), ),
onTap: () { onTap: () {
if (state.isSpeak.value == true) { if (state.isSpeak.value == false) {
Get.bottomSheet(
isScrollControlled: true,
applySpeakPermissionBottomSheet(context,2));
} else {
if (state.isOpenCamera.value == true) { if (state.isOpenCamera.value == true) {
logic.doHttpSetCamer(false); logic.doHttpSetCamer(false);
} else { } else {
@ -868,7 +874,7 @@ class MeetingMainPageState extends State<MeetingMainPage> {
} }
/// ///
Widget applySpeakPermissionBottomSheet(BuildContext context) { Widget applySpeakPermissionBottomSheet(BuildContext context, int defaulOpenState) {
return Container( return Container(
height: 240.h, height: 240.h,
color: ColorUtil.Color_7_9_11, color: ColorUtil.Color_7_9_11,
@ -966,6 +972,7 @@ class MeetingMainPageState extends State<MeetingMainPage> {
), ),
), ),
onTap: () { onTap: () {
state.defaulOpenState.value = defaulOpenState;
logic.doHttpApplySpeak(); logic.doHttpApplySpeak();
Get.back(); Get.back();
}, },