diff --git a/lib/pages/discover/discover_page.dart b/lib/pages/discover/discover_page.dart index 9ebae75..dd62551 100644 --- a/lib/pages/discover/discover_page.dart +++ b/lib/pages/discover/discover_page.dart @@ -93,7 +93,7 @@ class _DiscoverPageState extends State height: 27.w, decoration: BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(27.w)), - color: const Color.fromRGBO(0, 0, 0, .2) + color: Colors.white ), child: Row( mainAxisAlignment: MainAxisAlignment.center, @@ -101,13 +101,11 @@ class _DiscoverPageState extends State Icon( Icons.search, size: 15.w, - color: Colors.white, ), Text( "搜索", style: TextStyle( fontSize: 12.w, - color: Colors.white ), ) ], diff --git a/lib/pages/discover/live_room_page.dart b/lib/pages/discover/live_room_page.dart index 8e41a73..5cd641b 100644 --- a/lib/pages/discover/live_room_page.dart +++ b/lib/pages/discover/live_room_page.dart @@ -624,7 +624,6 @@ class _LiveRoomPageState extends State { final roomController = Get.find(); roomController.chatMessages.clear(); } - // 如果还没有执行 pop,手动调用 Get.back() Get.off(() => SettlementPage()); // 等待页面关闭后再显示小窗口,确保小窗口能正确显示 diff --git a/lib/rtc/rtc_manager.dart b/lib/rtc/rtc_manager.dart index 4d8f985..551d8f0 100644 --- a/lib/rtc/rtc_manager.dart +++ b/lib/rtc/rtc_manager.dart @@ -3,7 +3,9 @@ import 'dart:convert'; import 'package:agora_rtc_engine/agora_rtc_engine.dart'; import 'package:agora_token_generator/agora_token_generator.dart'; +import 'package:dating_touchme_app/controller/overlay_controller.dart'; import 'package:dating_touchme_app/extension/ex_widget.dart'; +import 'package:dating_touchme_app/pages/discover/settlement_page.dart'; import 'package:dating_touchme_app/rtc/rtm_manager.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; @@ -255,6 +257,7 @@ class RTCManager { ConnectionStateType state, ConnectionChangedReasonType reason, ) async{ + print('连接状态改变:$state,原因:$reason, localUid: ${connection.localUid}'); if(state == ConnectionStateType.connectionStateFailed && reason == ConnectionChangedReasonType.connectionChangedBannedByServer){ if (Get.isRegistered()) { @@ -265,11 +268,29 @@ class RTCManager { await roomController.leaveChannel(); // 调用 LiveChatMessageService 处理结束直播消息 LiveChatMessageService.instance.handleEndLiveMessage(); + } else { + // 退出房间时清空RTM消息 + await roomController.leaveChannel(); + await roomController.getLiveData(); + await roomController.getLiveIncome(); + SmartDialog.dismiss(); + if (Get.isRegistered()) { + final roomController = Get.find(); + roomController.chatMessages.clear(); + } + // 如果还没有执行 pop,手动调用 Get.back() + Get.off(() => SettlementPage()); + // 等待页面关闭后再显示小窗口,确保小窗口能正确显示 + Future.delayed(const Duration(milliseconds: 200), () { + if (Get.isRegistered()) { + final overlayController = Get.find(); + overlayController.hide(); + } + }); } } return; } - print('连接状态改变:$state,原因:$reason, localUid: ${connection.localUid}'); if (onConnectionStateChanged != null) { onConnectionStateChanged!(connection, state, reason); } @@ -614,6 +635,10 @@ class RTCManager { print('当前不在频道中'); return; } + + + _zeroTimer?.cancel(); + _zeroTimer = null; await RTMManager.instance.unsubscribe(_currentChannelId ?? ''); await _engine!.leaveChannel(); _currentUid = null;