diff --git a/lib/src/listener/signaling_listener.dart b/lib/src/listener/signaling_listener.dart index 05d805b..944dccb 100644 --- a/lib/src/listener/signaling_listener.dart +++ b/lib/src/listener/signaling_listener.dart @@ -1,88 +1,88 @@ -import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; - -/// 信令监听 -class OnSignalingListener { - final Function(SignalingInfo info)? onInvitationCancelled; - final Function(SignalingInfo info)? onInvitationTimeout; - final Function(SignalingInfo info)? onInviteeAccepted; - final Function(SignalingInfo info)? onInviteeRejected; - final Function(SignalingInfo info)? onReceiveNewInvitation; - final Function(SignalingInfo info)? onInviteeRejectedByOtherDevice; - final Function(SignalingInfo info)? onInviteeAcceptedByOtherDevice; - final Function(SignalingInfo info)? onHangup; - final Function(RoomCallingInfo info)? onRoomParticipantConnected; - final Function(RoomCallingInfo info)? onRoomParticipantDisconnected; - final Function(MeetingStreamEvent event)? onMeetingStreamChanged; - final Function(CustomSignaling info)? onReceiveCustomSignal; - - OnSignalingListener({ - this.onInvitationCancelled, - this.onInvitationTimeout, - this.onInviteeAccepted, - this.onInviteeRejected, - this.onReceiveNewInvitation, - this.onInviteeAcceptedByOtherDevice, - this.onInviteeRejectedByOtherDevice, - this.onHangup, - this.onRoomParticipantConnected, - this.onRoomParticipantDisconnected, - this.onMeetingStreamChanged, - this.onReceiveCustomSignal, - }); - - /// 被邀请者收到:邀请者取消音视频通话 - void invitationCancelled(SignalingInfo info) { - onInvitationCancelled?.call(info); - } - - /// 邀请者收到:被邀请者超时未接通 - void invitationTimeout(SignalingInfo info) { - onInvitationTimeout?.call(info); - } - - /// 邀请者收到:被邀请者同意音视频通话 - void inviteeAccepted(SignalingInfo info) { - onInviteeAccepted?.call(info); - } - - /// 邀请者收到:被邀请者拒绝音视频通话 - void inviteeRejected(SignalingInfo info) { - onInviteeRejected?.call(info); - } - - /// 被邀请者收到:音视频通话邀请 - void receiveNewInvitation(SignalingInfo info) { - onReceiveNewInvitation?.call(info); - } - - /// 被邀请者(其他端)收到:比如被邀请者在手机拒接,在pc上会收到此回调 - void inviteeAcceptedByOtherDevice(SignalingInfo info) { - onInviteeAcceptedByOtherDevice?.call(info); - } - - /// 被邀请者(其他端)收到:比如被邀请者在手机拒接,在pc上会收到此回调 - void inviteeRejectedByOtherDevice(SignalingInfo info) { - onInviteeRejectedByOtherDevice?.call(info); - } - - /// 被挂断 - void hangup(SignalingInfo info) { - onHangup?.call(info); - } - - void roomParticipantConnected(RoomCallingInfo info) { - onRoomParticipantConnected?.call(info); - } - - void roomParticipantDisconnected(RoomCallingInfo info) { - onRoomParticipantDisconnected?.call(info); - } - - void streamChangedEvent(MeetingStreamEvent event) { - onMeetingStreamChanged?.call(event); - } - - void receiveCustomSignal(CustomSignaling info) { - onReceiveCustomSignal?.call(info); - } -} +// import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; +// +// /// 信令监听 +// class OnSignalingListener { +// final Function(SignalingInfo info)? onInvitationCancelled; +// final Function(SignalingInfo info)? onInvitationTimeout; +// final Function(SignalingInfo info)? onInviteeAccepted; +// final Function(SignalingInfo info)? onInviteeRejected; +// final Function(SignalingInfo info)? onReceiveNewInvitation; +// final Function(SignalingInfo info)? onInviteeRejectedByOtherDevice; +// final Function(SignalingInfo info)? onInviteeAcceptedByOtherDevice; +// final Function(SignalingInfo info)? onHangup; +// final Function(RoomCallingInfo info)? onRoomParticipantConnected; +// final Function(RoomCallingInfo info)? onRoomParticipantDisconnected; +// final Function(MeetingStreamEvent event)? onMeetingStreamChanged; +// final Function(CustomSignaling info)? onReceiveCustomSignal; +// +// OnSignalingListener({ +// this.onInvitationCancelled, +// this.onInvitationTimeout, +// this.onInviteeAccepted, +// this.onInviteeRejected, +// this.onReceiveNewInvitation, +// this.onInviteeAcceptedByOtherDevice, +// this.onInviteeRejectedByOtherDevice, +// this.onHangup, +// this.onRoomParticipantConnected, +// this.onRoomParticipantDisconnected, +// this.onMeetingStreamChanged, +// this.onReceiveCustomSignal, +// }); +// +// /// 被邀请者收到:邀请者取消音视频通话 +// void invitationCancelled(SignalingInfo info) { +// onInvitationCancelled?.call(info); +// } +// +// /// 邀请者收到:被邀请者超时未接通 +// void invitationTimeout(SignalingInfo info) { +// onInvitationTimeout?.call(info); +// } +// +// /// 邀请者收到:被邀请者同意音视频通话 +// void inviteeAccepted(SignalingInfo info) { +// onInviteeAccepted?.call(info); +// } +// +// /// 邀请者收到:被邀请者拒绝音视频通话 +// void inviteeRejected(SignalingInfo info) { +// onInviteeRejected?.call(info); +// } +// +// /// 被邀请者收到:音视频通话邀请 +// void receiveNewInvitation(SignalingInfo info) { +// onReceiveNewInvitation?.call(info); +// } +// +// /// 被邀请者(其他端)收到:比如被邀请者在手机拒接,在pc上会收到此回调 +// void inviteeAcceptedByOtherDevice(SignalingInfo info) { +// onInviteeAcceptedByOtherDevice?.call(info); +// } +// +// /// 被邀请者(其他端)收到:比如被邀请者在手机拒接,在pc上会收到此回调 +// void inviteeRejectedByOtherDevice(SignalingInfo info) { +// onInviteeRejectedByOtherDevice?.call(info); +// } +// +// /// 被挂断 +// void hangup(SignalingInfo info) { +// onHangup?.call(info); +// } +// +// void roomParticipantConnected(RoomCallingInfo info) { +// onRoomParticipantConnected?.call(info); +// } +// +// void roomParticipantDisconnected(RoomCallingInfo info) { +// onRoomParticipantDisconnected?.call(info); +// } +// +// void streamChangedEvent(MeetingStreamEvent event) { +// onMeetingStreamChanged?.call(event); +// } +// +// void receiveCustomSignal(CustomSignaling info) { +// onReceiveCustomSignal?.call(info); +// } +// } diff --git a/lib/src/manager/im_manager.dart b/lib/src/manager/im_manager.dart index 3330dd1..3a7f09a 100644 --- a/lib/src/manager/im_manager.dart +++ b/lib/src/manager/im_manager.dart @@ -14,7 +14,7 @@ class IMManager { late UserManager userManager; // late OfflinePushManager offlinePushManager; - late SignalingManager signalingManager; + // late SignalingManager signalingManager; // late WorkMomentsManager workMomentsManager; // late OrganizationManager organizationManager; @@ -35,7 +35,7 @@ class IMManager { groupManager = GroupManager(_channel); userManager = UserManager(_channel); // offlinePushManager = OfflinePushManager(_channel); - signalingManager = SignalingManager(_channel); + // signalingManager = SignalingManager(_channel); // workMomentsManager = WorkMomentsManager(_channel); // organizationManager = OrganizationManager(_channel); _addNativeCallback(_channel); @@ -278,7 +278,8 @@ class IMManager { friendshipManager.listener.friendInfoChanged(u); break; } - } else if (call.method == ListenerType.signalingListener) { + } + /*else if (call.method == ListenerType.signalingListener) { String type = call.arguments['type']; dynamic data = call.arguments['data']; dynamic info; @@ -337,7 +338,7 @@ class IMManager { break; } } - /*else if (call.method == ListenerType.workMomentsListener) { + else if (call.method == ListenerType.workMomentsListener) { String type = call.arguments['type']; switch (type) { case 'OnRecvNewNotification': diff --git a/lib/src/manager/im_signaling_manager.dart b/lib/src/manager/im_signaling_manager.dart index f01765b..892296e 100644 --- a/lib/src/manager/im_signaling_manager.dart +++ b/lib/src/manager/im_signaling_manager.dart @@ -1,307 +1,307 @@ -import 'package:flutter/services.dart'; - -import '../../flutter_openim_sdk.dart'; - -class SignalingManager { - MethodChannel _channel; - late OnSignalingListener listener; - - SignalingManager(this._channel); - - /// 信令监听 - Future setSignalingListener(OnSignalingListener listener) { - this.listener = listener; - return _channel.invokeMethod('setSignalingListener', _buildParam({})); - } - - /// 邀请个人加入音视频 - /// [info] 信令对象[SignalingInfo] - Future signalingInvite({ - required SignalingInfo info, - String? operationID, - }) => - _channel - .invokeMethod( - 'signalingInvite', - _buildParam({ - 'signalingInfo': info.toJson(), - 'operationID': Utils.checkOperationID(operationID), - })) - .then((value) => - Utils.toObj(value, (map) => SignalingCertificate.fromJson(map))); - - /// 邀请群里某些人加入音视频 - /// [info] 信令对象[SignalingInfo] - Future signalingInviteInGroup({ - required SignalingInfo info, - String? operationID, - }) => - _channel - .invokeMethod( - 'signalingInviteInGroup', - _buildParam({ - 'signalingInfo': info.toJson(), - 'operationID': Utils.checkOperationID(operationID), - })) - .then((value) => - Utils.toObj(value, (map) => SignalingCertificate.fromJson(map))); - - /// 同意某人音视频邀请 - /// [info] 信令对象[SignalingInfo] - Future signalingAccept({ - required SignalingInfo info, - String? operationID, - }) => - _channel - .invokeMethod( - 'signalingAccept', - _buildParam({ - 'signalingInfo': info.toJson(), - 'operationID': Utils.checkOperationID(operationID), - })) - .then((value) => - Utils.toObj(value, (map) => SignalingCertificate.fromJson(map))); - - /// 拒绝某人音视频邀请 - /// [info] 信令对象[SignalingInfo] - Future signalingReject({ - required SignalingInfo info, - String? operationID, - }) => - _channel.invokeMethod( - 'signalingReject', - _buildParam({ - 'signalingInfo': info.toJson(), - 'operationID': Utils.checkOperationID(operationID), - })); - - /// 邀请者取消音视频通话 - /// [info] 信令对象[SignalingInfo] - Future signalingCancel({ - required SignalingInfo info, - String? operationID, - }) => - _channel.invokeMethod( - 'signalingCancel', - _buildParam({ - 'signalingInfo': info.toJson(), - 'operationID': Utils.checkOperationID(operationID), - })); - - /// 挂断 - /// [info] 信令对象[SignalingInfo] - Future signalingHungUp({ - required SignalingInfo info, - String? operationID, - }) => - _channel.invokeMethod( - 'signalingHungUp', - _buildParam({ - 'signalingInfo': info.toJson(), - 'operationID': Utils.checkOperationID(operationID), - })); - - /// 获取当前群通话信息 - /// [groupID] 当前群ID - Future signalingGetRoomByGroupID({ - required String groupID, - String? operationID, - }) => - _channel - .invokeMethod( - 'signalingGetRoomByGroupID', - _buildParam({ - 'groupID': groupID, - 'operationID': Utils.checkOperationID(operationID), - })) - .then((value) => - Utils.toObj(value, (map) => RoomCallingInfo.fromJson(map))); - - /// 获取进入房间的信息 - /// [roomID] 当前房间ID - Future signalingGetTokenByRoomID({ - required String roomID, - String? operationID, - }) => - _channel - .invokeMethod( - 'signalingGetTokenByRoomID', - _buildParam({ - 'roomID': roomID, - 'operationID': Utils.checkOperationID(operationID), - })) - .then((value) => Utils.toObj( - value, - (map) => SignalingCertificate.fromJson( - map..addAll({'roomID': roomID})))); - - /// 会议设置 - /// required String roomID, - /// String? meetingName, - /// String? ex, - /// int startTime = 0, - /// int endTime = 0, - /// bool participantCanUnmuteSelf = true, - /// bool participantCanEnableVideo = true, - /// bool onlyHostInviteUser = true, - /// bool onlyHostShareScreen = true, - /// bool joinDisableMicrophone = true, - /// bool joinDisableVideo = true, - /// bool isMuteAllVideo = true, - /// bool isMuteAllMicrophone = true, - /// List addCanScreenUserIDList = const [], - /// List reduceCanScreenUserIDList = const [], - /// List addDisableMicrophoneUserIDList = const [], - /// List reduceDisableMicrophoneUserIDList = const [], - /// List addDisableVideoUserIDList = const [], - /// List reduceDisableVideoUserIDList = const [], - /// List addPinedUserIDList = const [], - /// List reducePinedUserIDList = const [], - /// List addBeWatchedUserIDList = const [], - /// List reduceBeWatchedUserIDList = const [], - Future signalingUpdateMeetingInfo({ - required Map info, - String? operationID, - }) { - if (info['meetingID'] != null) { - info['roomID'] = info['meetingID']; - } - assert(info['roomID'] != null); - return _channel.invokeMethod( - 'signalingUpdateMeetingInfo', - _buildParam({ - 'info': info, - 'operationID': Utils.checkOperationID(operationID), - })); - } - - /// 创建会议室 - /// [meetingName] 会议主题 - /// [meetingHostUserID] 会议主持人ID - /// [startTime] 开始时间s - /// [meetingDuration] 会议时长s - /// [inviteeUserIDList] 被邀请人ID列表 - /// [ex] 其他 - Future signalingCreateMeeting({ - required String meetingName, - String? meetingHostUserID, - int? startTime, - int? meetingDuration, - List inviteeUserIDList = const [], - String? ex, - String? operationID, - }) => - _channel - .invokeMethod( - 'signalingCreateMeeting', - _buildParam({ - 'info': { - 'meetingName': meetingName, - 'meetingHostUserID': meetingHostUserID, - 'startTime': startTime, - 'meetingDuration': meetingDuration, - 'inviteeUserIDList': inviteeUserIDList, - 'ex': ex, - }, - 'operationID': Utils.checkOperationID(operationID), - })) - .then((value) => - Utils.toObj(value, (map) => SignalingCertificate.fromJson(map))); - - /// 加入会议室 - /// [meetingID] 会议ID - /// [meetingName] 会议主题 - /// [participantNickname] 加入房间显示的名称 - Future signalingJoinMeeting({ - required String meetingID, - String? meetingName, - String? participantNickname, - String? operationID, - }) => - _channel - .invokeMethod( - 'signalingJoinMeeting', - _buildParam({ - 'info': { - 'meetingID': meetingID, - 'meetingName': meetingName, - 'participantNickname': participantNickname, - }, - 'operationID': Utils.checkOperationID(operationID), - })) - .then((value) => - Utils.toObj(value, (map) => SignalingCertificate.fromJson(map))); - - /// 会议室 管理员对指定的某一个入会人员设置禁言 - /// [roomID] 会议ID - /// [streamType] video/audio - /// [userID] 被禁言的用户ID - /// [mute] true:禁言 - /// [muteAll] true:video/audio 一起设置 - Future signalingOperateStream({ - required String roomID, - String? streamType, - required String userID, - bool mute = false, - bool muteAll = false, - String? operationID, - }) => - _channel.invokeMethod( - 'signalingOperateStream', - _buildParam({ - 'roomID': roomID, - 'streamType': streamType, - 'userID': userID, - 'mute': mute, - 'muteAll': muteAll, - 'operationID': Utils.checkOperationID(operationID), - })); - - /// 获取所有的未完成会议 - /// [roomID] 会议ID - Future signalingGetMeetings({ - String? operationID, - }) => - _channel - .invokeMethod( - 'signalingGetMeetings', - _buildParam({ - 'operationID': Utils.checkOperationID(operationID), - })) - .then((value) => - Utils.toObj(value, (map) => MeetingInfoList.fromJson(map))); - - /// 结束会议 - /// [roomID] 会议ID - Future signalingCloseRoom({ - required String roomID, - String? operationID, - }) => - _channel.invokeMethod( - 'signalingCloseRoom', - _buildParam({ - 'roomID': roomID, - 'operationID': Utils.checkOperationID(operationID), - })); - - /// 自定义信令 - /// [roomID] 会议ID - /// [customInfo] 自定义信令 - Future signalingSendCustomSignal({ - required String roomID, - required String customInfo, - String? operationID, - }) => - _channel.invokeMethod( - 'signalingSendCustomSignal', - _buildParam({ - 'roomID': roomID, - 'customInfo': customInfo, - 'operationID': Utils.checkOperationID(operationID), - })); - - static Map _buildParam(Map param) { - param["ManagerName"] = "signalingManager"; - return param; - } -} +// import 'package:flutter/services.dart'; +// +// import '../../flutter_openim_sdk.dart'; +// +// class SignalingManager { +// MethodChannel _channel; +// late OnSignalingListener listener; +// +// SignalingManager(this._channel); +// +// /// 信令监听 +// Future setSignalingListener(OnSignalingListener listener) { +// this.listener = listener; +// return _channel.invokeMethod('setSignalingListener', _buildParam({})); +// } +// +// /// 邀请个人加入音视频 +// /// [info] 信令对象[SignalingInfo] +// Future signalingInvite({ +// required SignalingInfo info, +// String? operationID, +// }) => +// _channel +// .invokeMethod( +// 'signalingInvite', +// _buildParam({ +// 'signalingInfo': info.toJson(), +// 'operationID': Utils.checkOperationID(operationID), +// })) +// .then((value) => +// Utils.toObj(value, (map) => SignalingCertificate.fromJson(map))); +// +// /// 邀请群里某些人加入音视频 +// /// [info] 信令对象[SignalingInfo] +// Future signalingInviteInGroup({ +// required SignalingInfo info, +// String? operationID, +// }) => +// _channel +// .invokeMethod( +// 'signalingInviteInGroup', +// _buildParam({ +// 'signalingInfo': info.toJson(), +// 'operationID': Utils.checkOperationID(operationID), +// })) +// .then((value) => +// Utils.toObj(value, (map) => SignalingCertificate.fromJson(map))); +// +// /// 同意某人音视频邀请 +// /// [info] 信令对象[SignalingInfo] +// Future signalingAccept({ +// required SignalingInfo info, +// String? operationID, +// }) => +// _channel +// .invokeMethod( +// 'signalingAccept', +// _buildParam({ +// 'signalingInfo': info.toJson(), +// 'operationID': Utils.checkOperationID(operationID), +// })) +// .then((value) => +// Utils.toObj(value, (map) => SignalingCertificate.fromJson(map))); +// +// /// 拒绝某人音视频邀请 +// /// [info] 信令对象[SignalingInfo] +// Future signalingReject({ +// required SignalingInfo info, +// String? operationID, +// }) => +// _channel.invokeMethod( +// 'signalingReject', +// _buildParam({ +// 'signalingInfo': info.toJson(), +// 'operationID': Utils.checkOperationID(operationID), +// })); +// +// /// 邀请者取消音视频通话 +// /// [info] 信令对象[SignalingInfo] +// Future signalingCancel({ +// required SignalingInfo info, +// String? operationID, +// }) => +// _channel.invokeMethod( +// 'signalingCancel', +// _buildParam({ +// 'signalingInfo': info.toJson(), +// 'operationID': Utils.checkOperationID(operationID), +// })); +// +// /// 挂断 +// /// [info] 信令对象[SignalingInfo] +// Future signalingHungUp({ +// required SignalingInfo info, +// String? operationID, +// }) => +// _channel.invokeMethod( +// 'signalingHungUp', +// _buildParam({ +// 'signalingInfo': info.toJson(), +// 'operationID': Utils.checkOperationID(operationID), +// })); +// +// /// 获取当前群通话信息 +// /// [groupID] 当前群ID +// Future signalingGetRoomByGroupID({ +// required String groupID, +// String? operationID, +// }) => +// _channel +// .invokeMethod( +// 'signalingGetRoomByGroupID', +// _buildParam({ +// 'groupID': groupID, +// 'operationID': Utils.checkOperationID(operationID), +// })) +// .then((value) => +// Utils.toObj(value, (map) => RoomCallingInfo.fromJson(map))); +// +// /// 获取进入房间的信息 +// /// [roomID] 当前房间ID +// Future signalingGetTokenByRoomID({ +// required String roomID, +// String? operationID, +// }) => +// _channel +// .invokeMethod( +// 'signalingGetTokenByRoomID', +// _buildParam({ +// 'roomID': roomID, +// 'operationID': Utils.checkOperationID(operationID), +// })) +// .then((value) => Utils.toObj( +// value, +// (map) => SignalingCertificate.fromJson( +// map..addAll({'roomID': roomID})))); +// +// /// 会议设置 +// /// required String roomID, +// /// String? meetingName, +// /// String? ex, +// /// int startTime = 0, +// /// int endTime = 0, +// /// bool participantCanUnmuteSelf = true, +// /// bool participantCanEnableVideo = true, +// /// bool onlyHostInviteUser = true, +// /// bool onlyHostShareScreen = true, +// /// bool joinDisableMicrophone = true, +// /// bool joinDisableVideo = true, +// /// bool isMuteAllVideo = true, +// /// bool isMuteAllMicrophone = true, +// /// List addCanScreenUserIDList = const [], +// /// List reduceCanScreenUserIDList = const [], +// /// List addDisableMicrophoneUserIDList = const [], +// /// List reduceDisableMicrophoneUserIDList = const [], +// /// List addDisableVideoUserIDList = const [], +// /// List reduceDisableVideoUserIDList = const [], +// /// List addPinedUserIDList = const [], +// /// List reducePinedUserIDList = const [], +// /// List addBeWatchedUserIDList = const [], +// /// List reduceBeWatchedUserIDList = const [], +// Future signalingUpdateMeetingInfo({ +// required Map info, +// String? operationID, +// }) { +// if (info['meetingID'] != null) { +// info['roomID'] = info['meetingID']; +// } +// assert(info['roomID'] != null); +// return _channel.invokeMethod( +// 'signalingUpdateMeetingInfo', +// _buildParam({ +// 'info': info, +// 'operationID': Utils.checkOperationID(operationID), +// })); +// } +// +// /// 创建会议室 +// /// [meetingName] 会议主题 +// /// [meetingHostUserID] 会议主持人ID +// /// [startTime] 开始时间s +// /// [meetingDuration] 会议时长s +// /// [inviteeUserIDList] 被邀请人ID列表 +// /// [ex] 其他 +// Future signalingCreateMeeting({ +// required String meetingName, +// String? meetingHostUserID, +// int? startTime, +// int? meetingDuration, +// List inviteeUserIDList = const [], +// String? ex, +// String? operationID, +// }) => +// _channel +// .invokeMethod( +// 'signalingCreateMeeting', +// _buildParam({ +// 'info': { +// 'meetingName': meetingName, +// 'meetingHostUserID': meetingHostUserID, +// 'startTime': startTime, +// 'meetingDuration': meetingDuration, +// 'inviteeUserIDList': inviteeUserIDList, +// 'ex': ex, +// }, +// 'operationID': Utils.checkOperationID(operationID), +// })) +// .then((value) => +// Utils.toObj(value, (map) => SignalingCertificate.fromJson(map))); +// +// /// 加入会议室 +// /// [meetingID] 会议ID +// /// [meetingName] 会议主题 +// /// [participantNickname] 加入房间显示的名称 +// Future signalingJoinMeeting({ +// required String meetingID, +// String? meetingName, +// String? participantNickname, +// String? operationID, +// }) => +// _channel +// .invokeMethod( +// 'signalingJoinMeeting', +// _buildParam({ +// 'info': { +// 'meetingID': meetingID, +// 'meetingName': meetingName, +// 'participantNickname': participantNickname, +// }, +// 'operationID': Utils.checkOperationID(operationID), +// })) +// .then((value) => +// Utils.toObj(value, (map) => SignalingCertificate.fromJson(map))); +// +// /// 会议室 管理员对指定的某一个入会人员设置禁言 +// /// [roomID] 会议ID +// /// [streamType] video/audio +// /// [userID] 被禁言的用户ID +// /// [mute] true:禁言 +// /// [muteAll] true:video/audio 一起设置 +// Future signalingOperateStream({ +// required String roomID, +// String? streamType, +// required String userID, +// bool mute = false, +// bool muteAll = false, +// String? operationID, +// }) => +// _channel.invokeMethod( +// 'signalingOperateStream', +// _buildParam({ +// 'roomID': roomID, +// 'streamType': streamType, +// 'userID': userID, +// 'mute': mute, +// 'muteAll': muteAll, +// 'operationID': Utils.checkOperationID(operationID), +// })); +// +// /// 获取所有的未完成会议 +// /// [roomID] 会议ID +// Future signalingGetMeetings({ +// String? operationID, +// }) => +// _channel +// .invokeMethod( +// 'signalingGetMeetings', +// _buildParam({ +// 'operationID': Utils.checkOperationID(operationID), +// })) +// .then((value) => +// Utils.toObj(value, (map) => MeetingInfoList.fromJson(map))); +// +// /// 结束会议 +// /// [roomID] 会议ID +// Future signalingCloseRoom({ +// required String roomID, +// String? operationID, +// }) => +// _channel.invokeMethod( +// 'signalingCloseRoom', +// _buildParam({ +// 'roomID': roomID, +// 'operationID': Utils.checkOperationID(operationID), +// })); +// +// /// 自定义信令 +// /// [roomID] 会议ID +// /// [customInfo] 自定义信令 +// Future signalingSendCustomSignal({ +// required String roomID, +// required String customInfo, +// String? operationID, +// }) => +// _channel.invokeMethod( +// 'signalingSendCustomSignal', +// _buildParam({ +// 'roomID': roomID, +// 'customInfo': customInfo, +// 'operationID': Utils.checkOperationID(operationID), +// })); +// +// static Map _buildParam(Map param) { +// param["ManagerName"] = "signalingManager"; +// return param; +// } +// }