diff --git a/lib/controller/discover/room_controller.dart b/lib/controller/discover/room_controller.dart index 7029b7e..1cd07c1 100644 --- a/lib/controller/discover/room_controller.dart +++ b/lib/controller/discover/room_controller.dart @@ -334,10 +334,6 @@ class RoomController extends GetxController with WidgetsBindingObserver { } Future leaveChannel() async { - if(!isLive.value){ - // 如果是非直播中,不需要处理 - return; - } // 如果是主播,先销毁 RTC 频道,然后发送结束直播消息 if (currentRole == CurrentRole.broadcaster) { try { @@ -440,6 +436,9 @@ class RoomController extends GetxController with WidgetsBindingObserver { return; } + // 消费成功后刷新玫瑰数量 + await getVirtualAccount(); + // 消费成功后再添加到本地播放队列 final svgaManager = SvgaPlayerManager.instance; svgaManager.addToQueue( diff --git a/lib/pages/discover/live_room_page.dart b/lib/pages/discover/live_room_page.dart index a39219e..7927790 100644 --- a/lib/pages/discover/live_room_page.dart +++ b/lib/pages/discover/live_room_page.dart @@ -177,9 +177,11 @@ class _LiveRoomPageState extends State { message = ''; } - void _showGiftPopup() { + void _showGiftPopup() async { // 隐藏键盘 FocusScope.of(context).unfocus(); + // 刷新玫瑰数量 + await _roomController.getVirtualAccount(); SmartDialog.show( alignment: Alignment.bottomCenter, maskColor: TDTheme.of(context).fontGyColor2, diff --git a/lib/widget/live/live_room_anchor_showcase.dart b/lib/widget/live/live_room_anchor_showcase.dart index 413fdfe..d83f04a 100644 --- a/lib/widget/live/live_room_anchor_showcase.dart +++ b/lib/widget/live/live_room_anchor_showcase.dart @@ -387,7 +387,7 @@ class _LiveRoomAnchorShowcaseState extends State { ); } - void _showGiftPopupForUser(RtcSeatUserInfo? userInfo, int type) { + void _showGiftPopupForUser(RtcSeatUserInfo? userInfo, int type) async { if (userInfo == null) { return; } @@ -400,6 +400,9 @@ class _LiveRoomAnchorShowcaseState extends State { return; } + // 刷新玫瑰数量 + await _roomController.getVirtualAccount(); + // 创建必要的 ValueNotifier final activeGift = ValueNotifier(null); final giftNum = ValueNotifier(1); diff --git a/lib/widget/live/live_room_chat_item.dart b/lib/widget/live/live_room_chat_item.dart index 031fcd2..4205b43 100644 --- a/lib/widget/live/live_room_chat_item.dart +++ b/lib/widget/live/live_room_chat_item.dart @@ -16,9 +16,12 @@ class LiveRoomChatItem extends StatelessWidget { final LiveChatMessage message; - void _showGiftPopup(BuildContext context, int type) { + void _showGiftPopup(BuildContext context, int type) async { final roomController = Get.find(); + // 刷新玫瑰数量 + await roomController.getVirtualAccount(); + // 尝试从频道详情中根据 userId 找到对应的用户信息 int? targetUid = message.uid;