全员观看切换优化

This commit is contained in:
fuenmao 2024-12-25 11:14:06 +08:00
parent 7052764dc8
commit d488f29ddf
2 changed files with 74 additions and 66 deletions

View File

@ -196,6 +196,7 @@ class MeetingMainLogic extends GetxController with RequestToolMixin {
if (res.data!.toString().length != 9) {
//
if (state.remoteUid.value == UserStore.to.userInfoEntity.value!.uid) {
debugPrint("wgs输出===:当前全员观看是自己");
//
// ID为0
state.remoteUid.value = "0";
@ -210,6 +211,7 @@ class MeetingMainLogic extends GetxController with RequestToolMixin {
changePageState(0);
}
} else {
debugPrint("wgs输出===:当前全员观看不是自己");
//
//
var isCurrentUserIsCamera = false;
@ -223,13 +225,17 @@ class MeetingMainLogic extends GetxController with RequestToolMixin {
if (isCurrentUserIsCamera == true) {
//
debugPrint("wgs输出===:当前会议室存在全员观看主播时,切换页面到视频状态");
changePageState(1);
changePageState(0);
Future.delayed(const Duration(milliseconds: 200), () {
changePageState(1);
});
} else {
// ID为空并切换页面到视频状态
debugPrint("wgs输出===当前会议室不存在全员观看主播时设置主播ID为空并切换页面到视频状态");
state.remoteUid.value = "";
changePageState(1);
}
update();
}
} else {
if(state.remoteUid.value == UserStore.to.userInfoEntity.value!.screenShareId){

View File

@ -1519,79 +1519,81 @@ class MeetingMainPageState extends State<MeetingMainPage> {
var pageList = [];
///
pageList.add(Stack(
alignment: Alignment.center,
children: [
state.remoteUid.value != ""
? AgoraVideoView(
controller: VideoViewController(
rtcEngine: state.rctEngine.value!,
canvas: VideoCanvas(
uid: int.tryParse(state.remoteUid.value),
setupMode: VideoViewSetupMode.videoViewSetupAdd,
renderMode: state.remoteUid.value.length == 9
? RenderModeType.renderModeFit
: RenderModeType.renderModeHidden),
),
)
: Container(
width: double.infinity,
color: ColorUtil.Color_57_57_57,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Image.asset(
'assets/images/metting_main_no_person.png',
width: 138.w,
height: 144.h,
),
const SizedBox(height: 20),
Text(
'主持人正在赶来的路上...',
style: TextStyle(
color: ColorUtil.Color_255_255_255, fontSize: 14.sp),
)
],
),
),
Positioned(
top: 16,
right: 16,
child: Container(
height: 30,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
color: ColorUtil.Color_0_0_0_96),
padding: const EdgeInsets.only(left: 12, right: 12),
child: Row(
pageList.add(GetBuilder<MeetingMainLogic>(builder: (controll) {
return Stack(
alignment: Alignment.center,
children: [
state.remoteUid.value != ""
? AgoraVideoView(
controller: VideoViewController(
rtcEngine: state.rctEngine.value!,
canvas: VideoCanvas(
uid: int.tryParse(state.remoteUid.value),
setupMode: VideoViewSetupMode.videoViewSetupAdd,
renderMode: state.remoteUid.value.length == 9
? RenderModeType.renderModeFit
: RenderModeType.renderModeHidden),
),
)
: Container(
width: double.infinity,
color: ColorUtil.Color_57_57_57,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'正在讲话:',
style: TextStyle(
fontSize: 10.sp, color: ColorUtil.Color_185_184_184),
),
SizedBox(
width: 20.w,
height: 20.h,
child: LiquidCustomProgressIndicator(
value: state.spokesmanVolume.value,
valueColor: const AlwaysStoppedAnimation(
ColorUtil.Color_2_177_136),
backgroundColor: ColorUtil.Color_255_255_255,
direction: Axis.vertical,
shapePath: ViewSvgPath.getMicrpphonePath()),
Image.asset(
'assets/images/metting_main_no_person.png',
width: 138.w,
height: 144.h,
),
const SizedBox(height: 20),
Text(
state.spokesman.value,
'主持人正在赶来的路上...',
style: TextStyle(
fontSize: 10.sp, color: ColorUtil.Color_185_184_184),
color: ColorUtil.Color_255_255_255, fontSize: 14.sp),
)
],
),
),
),
],
));
Positioned(
top: 16,
right: 16,
child: Container(
height: 30,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
color: ColorUtil.Color_0_0_0_96),
padding: const EdgeInsets.only(left: 12, right: 12),
child: Row(
children: [
Text(
'正在讲话:',
style: TextStyle(
fontSize: 10.sp, color: ColorUtil.Color_185_184_184),
),
SizedBox(
width: 20.w,
height: 20.h,
child: LiquidCustomProgressIndicator(
value: state.spokesmanVolume.value,
valueColor: const AlwaysStoppedAnimation(
ColorUtil.Color_2_177_136),
backgroundColor: ColorUtil.Color_255_255_255,
direction: Axis.vertical,
shapePath: ViewSvgPath.getMicrpphonePath()),
),
Text(
state.spokesman.value,
style: TextStyle(
fontSize: 10.sp, color: ColorUtil.Color_185_184_184),
)
],
),
),
),
],
);
}));
/// gridview
pageList.add(Container(