Browse Source

refactor(live_chat): 调整结束直播消息处理逻辑

- 将 _handleEndLiveMessage 方法改为公共方法 handleEndLiveMessage
- 在 RTCManager 中添加对主播离开频道的处理
- 当远端用户为主播且频道ID存在时自动离开频道
- 集成 LiveChatMessageService 处理结束直播消息
- 添加对 OverlayController 的检查和关闭逻辑
master
Jolie 2 months ago
parent
commit
cd29f09b08
2 changed files with 8 additions and 2 deletions
  1. 6
      lib/rtc/rtc_manager.dart
  2. 4
      lib/service/live_chat_message_service.dart

6
lib/rtc/rtc_manager.dart

@ -9,6 +9,7 @@ import 'package:get/get.dart';
import '../controller/discover/room_controller.dart'; import '../controller/discover/room_controller.dart';
import '../controller/message/call_controller.dart'; import '../controller/message/call_controller.dart';
import '../pages/discover/live_room_page.dart'; import '../pages/discover/live_room_page.dart';
import '../service/live_chat_message_service.dart';
enum RTCType { enum RTCType {
call, // / call, // /
@ -208,6 +209,11 @@ class RTCManager {
channelId != null && channelId != null &&
channelId.isNotEmpty) { channelId.isNotEmpty) {
final roomController = Get.find<RoomController>(); final roomController = Get.find<RoomController>();
if(remoteUid == roomController.rtcChannelDetail.value?.anchorInfo?.uid){
await roomController.leaveChannel();
// LiveChatMessageService
LiveChatMessageService.instance.handleEndLiveMessage();
}
await roomController.fetchRtcChannelDetail(channelId); await roomController.fetchRtcChannelDetail(channelId);
} }
} }

4
lib/service/live_chat_message_service.dart

@ -72,7 +72,7 @@ class LiveChatMessageService {
if (messageData['type'] == 'end_live') { if (messageData['type'] == 'end_live') {
RoomController controller = Get.find<RoomController>(); RoomController controller = Get.find<RoomController>();
await controller.leaveChannel(); await controller.leaveChannel();
_handleEndLiveMessage();
handleEndLiveMessage();
return; return;
} }
@ -119,7 +119,7 @@ class LiveChatMessageService {
} }
/// ///
void _handleEndLiveMessage() {
void handleEndLiveMessage() {
try { try {
// overlay // overlay
if (Get.isRegistered<OverlayController>()) { if (Get.isRegistered<OverlayController>()) {

Loading…
Cancel
Save