
import 'package:flutter/material.dart';import 'package:tencent_live_uikit/common/index.dart';import 'package:tencent_live_uikit/component/index.dart';class YourAnchorPage extends StatefulWidget {final String liveId;const YourAnchorPage({super.key, required this.liveId});@overrideState<YourAnchorPage> createState() => _YourAnchorPageState();}class _YourAnchorPageState extends State<YourAnchorPage> {@overrideWidget build(BuildContext context) {return Scaffold(body: SafeArea(child: Stack(children: [// ... Other live room elements ...// Audience List componentPositioned(top: 12.height,right: 50.width,child: AudienceListWidget(roomId: widget.liveId,),),],),),);}}
Interface | Parameter | Description |
onClickUserItem | LiveUserInfo | Callback triggered when an audience list item is clicked. |
class LiveUserInfo {/// Unique user ID.String userID;/// User name.String userName;/// User avatar URL.String avatarURL;LiveUserInfo({this.userID = '', this.userName = '', this.avatarURL = ''});}
onClickUserItem callback and use LiveAudienceStore to perform actions such as removing a user from the live room:import 'package:atomic_x_core/atomicxcore.dart';import 'package:flutter/cupertino.dart';import 'package:flutter/material.dart';import 'package:tencent_live_uikit/component/index.dart';import 'package:rtc_room_engine/rtc_room_engine.dart';class YourAnchorPage extends StatefulWidget {final String liveId;const YourAnchorPage({super.key, required this.liveId});@overrideState<YourAnchorPage> createState() => _YourAnchorPageState();}class _YourAnchorPageState extends State<YourAnchorPage> {// 1. Define the Store for the Audience List componentlate final LiveAudienceStore _liveAudienceStore;@overridevoid initState() {super.initState();_liveAudienceStore = LiveAudienceStore.create(widget.liveId);}@overrideWidget build(BuildContext context) {return Scaffold(body: SafeArea(child: Stack(children: [// ... Other live room elements ...// 2. Integrate the Audience List component and bind the "click audience" eventPositioned(top: 12.height,right: 50.width,child: AudienceListWidget(roomId: widget.liveId,onClickUserItem: (LiveUserInfo userInfo) {_showUserManagementSheet(userInfo);},),),],),),);}// 3. Custom user management popupvoid _showUserManagementSheet(LiveUserInfo user) {showCupertinoModalPopup<void>(context: context,builder: (ctx) => CupertinoActionSheet(title: const Text('Audience Management'),message: Text('Please select an action for ${user.userName}'),actions: [CupertinoActionSheetAction(isDestructiveAction: true,onPressed: () {Navigator.of(ctx).pop();_kickOutUser(user);},child: const Text('Remove from live room'),),],cancelButton: CupertinoActionSheetAction(isDefaultAction: true,onPressed: () => Navigator.of(ctx).pop(),child: const Text('Cancel'),),),);}// 4. Call Store method to remove uservoid _kickOutUser(LiveUserInfo user) {_liveAudienceStore.kickUserOutOfRoom(user.userID).then((result) {if (result.errorCode == TUIError.success.rawValue) {debugPrint('Successfully removed ${user.userName}.');} else {debugPrint('Failed to remove user, code: ${result.errorCode}, message: ${result.errorMessage}');}});}}
Esta página foi útil?
Você também pode entrar em contato com a Equipe de vendas ou Enviar um tíquete em caso de ajuda.
comentários