Browse Source

优化1v1

dev-2.0
YakumoChen 6 days ago
parent
commit
2b2510b571
1 changed files with 31 additions and 27 deletions
  1. 58
      lib/rtc/rtc_manager.dart

58
lib/rtc/rtc_manager.dart

@ -260,35 +260,39 @@ class RTCManager {
print('连接状态改变:$state,原因:$reason, localUid: ${connection.localUid}');
if(state == ConnectionStateType.connectionStateFailed &&
reason == ConnectionChangedReasonType.connectionChangedBannedByServer){
if (Get.isRegistered<RoomController>()) {
final roomController = Get.find<RoomController>();
// RoomController.currentRole
final isNotBroadcaster = roomController.currentRole != CurrentRole.broadcaster;
if (isNotBroadcaster) {
await roomController.leaveChannel();
// LiveChatMessageService
LiveChatMessageService.instance.handleEndLiveMessage();
} else {
if(roomController.isClose.value) return;
// 退RTM消息
await roomController.leaveChannel();
await roomController.getLiveData();
await roomController.getLiveIncome();
SmartDialog.dismiss();
if (Get.isRegistered<RoomController>()) {
final roomController = Get.find<RoomController>();
roomController.chatMessages.clear();
}
// pop Get.back()
Get.off(() => SettlementPage());
//
Future.delayed(const Duration(milliseconds: 200), () {
if (Get.isRegistered<OverlayController>()) {
final overlayController = Get.find<OverlayController>();
overlayController.hide();
if(type != RTCType.call){
if (Get.isRegistered<RoomController>()) {
final roomController = Get.find<RoomController>();
// RoomController.currentRole
final isNotBroadcaster = roomController.currentRole != CurrentRole.broadcaster;
if (isNotBroadcaster) {
await roomController.leaveChannel();
// LiveChatMessageService
LiveChatMessageService.instance.handleEndLiveMessage();
} else {
if(roomController.isClose.value) return;
// 退RTM消息
await roomController.leaveChannel();
await roomController.getLiveData();
await roomController.getLiveIncome();
SmartDialog.dismiss();
if (Get.isRegistered<RoomController>()) {
final roomController = Get.find<RoomController>();
roomController.chatMessages.clear();
}
});
// pop Get.back()
Get.off(() => SettlementPage());
//
Future.delayed(const Duration(milliseconds: 200), () {
if (Get.isRegistered<OverlayController>()) {
final overlayController = Get.find<OverlayController>();
overlayController.hide();
}
});
}
}
} else {
CallController.instance.hangUpCall();
}
return;
}

Loading…
Cancel
Save