parent
7f53a1a855
commit
8e9e4b2812
Binary file not shown.
|
After Width: | Height: | Size: 929 B |
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 460 B |
|
|
@ -39,7 +39,10 @@ class MeetingRoomUser extends Object{
|
|||
@JsonKey(name: 'volume')
|
||||
double? volume = 0.0;
|
||||
|
||||
MeetingRoomUser(this.uid,this.connectId,this.account,this.enableMicr,this.enableCamera,this.screenShareId,this.userName,this.roleId,this.roleName,this.isRoomManager,this.volume);
|
||||
@JsonKey(name: 'enableShare')
|
||||
bool? enableShare;
|
||||
|
||||
MeetingRoomUser(this.uid,this.connectId,this.account,this.enableMicr,this.enableCamera,this.screenShareId,this.userName,this.roleId,this.roleName,this.isRoomManager,this.volume,this.enableShare);
|
||||
|
||||
factory MeetingRoomUser.fromJson(Map<String, dynamic> srcJson) => _$MeetingRoomUserFromJson(srcJson);
|
||||
|
||||
|
|
|
|||
|
|
@ -232,13 +232,30 @@ class MeetingMainLogic extends GetxController with RequestToolMixin {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
// 共享屏幕(此版本不做)
|
||||
/*if(state.remoteUid.value == UserStore.to.userInfoEntity.value!.screenShareId){
|
||||
if(state.remoteUid.value == UserStore.to.userInfoEntity.value!.screenShareId){
|
||||
// 如果是自己在共享
|
||||
}else{
|
||||
// 如果是别人在共享,切换页面到视频状态
|
||||
changePageState(1);
|
||||
}*/
|
||||
// 共享不是自己
|
||||
// 判断当前会议室是否存在共享成员
|
||||
var isCurrentUserIsCamera = false;
|
||||
for (var i = 0; i < state.cacheUsers.value.length; i++) {
|
||||
if (state.remoteUid.value == state.cacheUsers.value[i].screenShareId) {
|
||||
state.cacheUsers.value[i].enableShare = true;
|
||||
isCurrentUserIsCamera = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (isCurrentUserIsCamera == true) {
|
||||
// 当前会议室存在全员观看主播时,切换页面到视频状态
|
||||
debugPrint("wgs输出===:当前会议室存在全员观看主播时,切换页面到视频状态");
|
||||
changePageState(1);
|
||||
} else {
|
||||
// 当前会议室不存在全员观看主播时,设置主播ID为空并切换页面到视频状态
|
||||
debugPrint("wgs输出===:当前会议室不存在全员观看主播时,设置主播ID为空并切换页面到视频状态");
|
||||
state.remoteUid.value = "";
|
||||
changePageState(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -279,8 +279,8 @@ class MeetingMainPageState extends State<MeetingMainPage> {
|
|||
child: Container(
|
||||
width: 200.w,
|
||||
height: 40.h,
|
||||
margin:
|
||||
const EdgeInsets.only(left: 20, bottom: 40),
|
||||
margin: const EdgeInsets.only(
|
||||
left: 20, bottom: 40),
|
||||
padding: const EdgeInsets.only(left: 20),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: const BorderRadius.only(
|
||||
|
|
@ -293,7 +293,8 @@ class MeetingMainPageState extends State<MeetingMainPage> {
|
|||
color: ColorUtil.Color_99_111_158),
|
||||
),
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.center,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
Image.asset(
|
||||
|
|
@ -315,26 +316,28 @@ class MeetingMainPageState extends State<MeetingMainPage> {
|
|||
Get.bottomSheet(
|
||||
isScrollControlled: true,
|
||||
chatBottomSheet(context));
|
||||
Future.delayed(const Duration(milliseconds: 100),
|
||||
() {
|
||||
state.chatController.jumpTo(state
|
||||
.chatController.position.maxScrollExtent);
|
||||
});
|
||||
Future.delayed(
|
||||
const Duration(milliseconds: 100), () {
|
||||
state.chatController.jumpTo(state
|
||||
.chatController
|
||||
.position
|
||||
.maxScrollExtent);
|
||||
});
|
||||
},
|
||||
),
|
||||
|
||||
Visibility(
|
||||
visible: state.isSpeak.value,
|
||||
child: GestureDetector(
|
||||
child: Container(
|
||||
width: 82.w,
|
||||
height: 40.h,
|
||||
margin: const EdgeInsets.only(left: 12, bottom: 40,right: 20),
|
||||
margin: const EdgeInsets.only(
|
||||
left: 12, bottom: 40, right: 20),
|
||||
alignment: Alignment.center,
|
||||
decoration: const BoxDecoration(
|
||||
borderRadius: BorderRadius.all(Radius.circular(99)),
|
||||
color: ColorUtil.Color_255_69_69
|
||||
),
|
||||
borderRadius: BorderRadius.all(
|
||||
Radius.circular(99)),
|
||||
color: ColorUtil.Color_255_69_69),
|
||||
child: Text(
|
||||
'结束发言',
|
||||
style: TextStyle(
|
||||
|
|
@ -417,7 +420,8 @@ class MeetingMainPageState extends State<MeetingMainPage> {
|
|||
if (state.isSpeak.value == false) {
|
||||
Get.bottomSheet(
|
||||
isScrollControlled: true,
|
||||
applySpeakPermissionBottomSheet(context,1));
|
||||
applySpeakPermissionBottomSheet(
|
||||
context, 1));
|
||||
} else {
|
||||
if (state.isOpenMicrophone.value == false) {
|
||||
logic.doHttpSetMicr(true);
|
||||
|
|
@ -446,7 +450,8 @@ class MeetingMainPageState extends State<MeetingMainPage> {
|
|||
Text(
|
||||
/*state.isSpeak.value == false
|
||||
? '申请发言'
|
||||
: */state.isOpenCamera.value == true
|
||||
: */
|
||||
state.isOpenCamera.value == true
|
||||
? "关闭视频"
|
||||
: "开启视频",
|
||||
style: TextStyle(
|
||||
|
|
@ -459,7 +464,8 @@ class MeetingMainPageState extends State<MeetingMainPage> {
|
|||
if (state.isSpeak.value == false) {
|
||||
Get.bottomSheet(
|
||||
isScrollControlled: true,
|
||||
applySpeakPermissionBottomSheet(context,2));
|
||||
applySpeakPermissionBottomSheet(
|
||||
context, 2));
|
||||
} else {
|
||||
if (state.isOpenCamera.value == true) {
|
||||
logic.doHttpSetCamer(false);
|
||||
|
|
@ -763,14 +769,13 @@ class MeetingMainPageState extends State<MeetingMainPage> {
|
|||
),
|
||||
Expanded(
|
||||
child: GestureDetector(
|
||||
child: Container(
|
||||
color: ColorUtil.Color_57_57_57_08,
|
||||
),
|
||||
onTap: (){
|
||||
logic.changeMeetingInfoState(false);
|
||||
},
|
||||
)
|
||||
)
|
||||
child: Container(
|
||||
color: ColorUtil.Color_57_57_57_08,
|
||||
),
|
||||
onTap: () {
|
||||
logic.changeMeetingInfoState(false);
|
||||
},
|
||||
))
|
||||
],
|
||||
),
|
||||
);
|
||||
|
|
@ -784,13 +789,13 @@ class MeetingMainPageState extends State<MeetingMainPage> {
|
|||
children: [
|
||||
Expanded(
|
||||
child: GestureDetector(
|
||||
child: Container(
|
||||
color: ColorUtil.Color_57_57_57_08,
|
||||
),
|
||||
onTap: (){
|
||||
logic.changeMeetingAudioState(false);
|
||||
},
|
||||
)),
|
||||
child: Container(
|
||||
color: ColorUtil.Color_57_57_57_08,
|
||||
),
|
||||
onTap: () {
|
||||
logic.changeMeetingAudioState(false);
|
||||
},
|
||||
)),
|
||||
Container(
|
||||
color: ColorUtil.Color_57_57_57_08,
|
||||
child: Container(
|
||||
|
|
@ -809,13 +814,13 @@ class MeetingMainPageState extends State<MeetingMainPage> {
|
|||
),
|
||||
Expanded(
|
||||
child: GestureDetector(
|
||||
child:Container(
|
||||
color: ColorUtil.Color_57_57_57_08,
|
||||
),
|
||||
onTap: (){
|
||||
logic.changeMeetingAudioState(false);
|
||||
},
|
||||
))
|
||||
child: Container(
|
||||
color: ColorUtil.Color_57_57_57_08,
|
||||
),
|
||||
onTap: () {
|
||||
logic.changeMeetingAudioState(false);
|
||||
},
|
||||
))
|
||||
],
|
||||
),
|
||||
);
|
||||
|
|
@ -874,7 +879,8 @@ class MeetingMainPageState extends State<MeetingMainPage> {
|
|||
}
|
||||
|
||||
/// 申请发言权限底部弹窗
|
||||
Widget applySpeakPermissionBottomSheet(BuildContext context, int defaulOpenState) {
|
||||
Widget applySpeakPermissionBottomSheet(
|
||||
BuildContext context, int defaulOpenState) {
|
||||
return Container(
|
||||
height: 240.h,
|
||||
color: ColorUtil.Color_7_9_11,
|
||||
|
|
@ -1070,13 +1076,15 @@ class MeetingMainPageState extends State<MeetingMainPage> {
|
|||
Container(
|
||||
margin:
|
||||
const EdgeInsets.only(top: 18, left: 16, right: 16, bottom: 16),
|
||||
child: Text(
|
||||
'会议中(${state.users.value.length})',
|
||||
style: TextStyle(
|
||||
fontSize: 14.sp,
|
||||
fontWeight: FontWeight.w500,
|
||||
color: ColorUtil.Color_85_117_242),
|
||||
),
|
||||
child: GetBuilder<MeetingMainLogic>(builder: (controll) {
|
||||
return Text(
|
||||
'会议中(${state.users.value.length})',
|
||||
style: TextStyle(
|
||||
fontSize: 14.sp,
|
||||
fontWeight: FontWeight.w500,
|
||||
color: ColorUtil.Color_85_117_242),
|
||||
);
|
||||
}),
|
||||
),
|
||||
Expanded(
|
||||
child: ScrollConfiguration(
|
||||
|
|
@ -1175,7 +1183,10 @@ class MeetingMainPageState extends State<MeetingMainPage> {
|
|||
children: [
|
||||
Container(
|
||||
child: Image.asset(
|
||||
'assets/images/meeting_main_share_currently.png',
|
||||
state.users.value[index].enableShare ==
|
||||
true
|
||||
? 'assets/images/meeting_main_share_currently.png'
|
||||
: 'assets/images/meeting_main_share_currently_n.png',
|
||||
width: 17.w,
|
||||
height: 17.h,
|
||||
),
|
||||
|
|
@ -1517,7 +1528,9 @@ class MeetingMainPageState extends State<MeetingMainPage> {
|
|||
canvas: VideoCanvas(
|
||||
uid: int.tryParse(state.remoteUid.value),
|
||||
setupMode: VideoViewSetupMode.videoViewSetupAdd,
|
||||
renderMode: state.remoteUid.value.length == 9 ? RenderModeType.renderModeFit : RenderModeType.renderModeHidden),
|
||||
renderMode: state.remoteUid.value.length == 9
|
||||
? RenderModeType.renderModeFit
|
||||
: RenderModeType.renderModeHidden),
|
||||
),
|
||||
)
|
||||
: Container(
|
||||
|
|
@ -1677,11 +1690,14 @@ class MeetingMainPageState extends State<MeetingMainPage> {
|
|||
shapePath:
|
||||
ViewSvgPath.getMicrpphonePath()),
|
||||
),
|
||||
Text(
|
||||
state.cacheUsers.value[index].userName,
|
||||
style: TextStyle(
|
||||
fontSize: 12.sp,
|
||||
color: ColorUtil.Color_255_255_255),
|
||||
SizedBox(
|
||||
width: 70,
|
||||
child: Text(
|
||||
state.cacheUsers.value[index].userName,
|
||||
style: TextStyle(
|
||||
fontSize: 12.sp,
|
||||
color: ColorUtil.Color_255_255_255),
|
||||
)
|
||||
)
|
||||
],
|
||||
)
|
||||
|
|
@ -1694,11 +1710,14 @@ class MeetingMainPageState extends State<MeetingMainPage> {
|
|||
width: 20.w,
|
||||
height: 20.h,
|
||||
),
|
||||
Text(
|
||||
state.cacheUsers.value[index].userName,
|
||||
style: TextStyle(
|
||||
fontSize: 12.sp,
|
||||
color: ColorUtil.Color_255_255_255),
|
||||
SizedBox(
|
||||
width: 70,
|
||||
child: Text(
|
||||
state.cacheUsers.value[index].userName,
|
||||
style: TextStyle(
|
||||
fontSize: 12.sp,
|
||||
color: ColorUtil.Color_255_255_255),
|
||||
)
|
||||
)
|
||||
],
|
||||
),
|
||||
|
|
|
|||
|
|
@ -72,11 +72,16 @@ class MeetingMainVoiceComponent extends StatelessWidget {
|
|||
shapePath: ViewSvgPath.getMicrpphonePath()
|
||||
),
|
||||
),
|
||||
Text(
|
||||
users[index].userName,
|
||||
style: TextStyle(
|
||||
fontSize: 12.sp,
|
||||
color: ColorUtil.Color_255_255_255),
|
||||
SizedBox(
|
||||
width: 70,
|
||||
child: Text(
|
||||
users[index].userName,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: TextStyle(
|
||||
fontSize: 12.sp,
|
||||
color: ColorUtil.Color_255_255_255),
|
||||
),
|
||||
)
|
||||
],
|
||||
)
|
||||
|
|
@ -89,11 +94,16 @@ class MeetingMainVoiceComponent extends StatelessWidget {
|
|||
width: 20.w,
|
||||
height: 20.h,
|
||||
),
|
||||
Text(
|
||||
users[index].userName,
|
||||
style: TextStyle(
|
||||
fontSize: 12.sp,
|
||||
color: ColorUtil.Color_255_255_255),
|
||||
SizedBox(
|
||||
width: 70,
|
||||
child: Text(
|
||||
users[index].userName,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: TextStyle(
|
||||
fontSize: 12.sp,
|
||||
color: ColorUtil.Color_255_255_255),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
|
|
|
|||
Loading…
Reference in New Issue