产品动态
产品近期公告
关于 TRTC Live 正式上线的公告
关于TRTC Conference 正式版上线的公告
Conference 商业化版本即将推出
关于多人音视频 Conference 开启内测公告
关于音视频通话 Call 正式版上线的公告
关于腾讯云音视频终端 SDK 播放升级及新增授权校验的公告
关于 TRTC 应用订阅套餐服务上线的相关说明
属性名 | 类型 | 描述 |
currentBattleInfo | 当前 PK 信息。 | |
battleUsers | PK 用户列表。 | |
battleScore | ValueListenable<Map<String, int>> | PK 分数的映射。 |
函数名 | 描述 |
创建 BattleStore 实例。 | |
新增 PK 事件回调。 | |
移除 PK 事件回调。 | |
发起 PK 请求。 | |
取消 PK 请求。 | |
接受 PK 请求。 | |
拒绝 PK 请求。 | |
退出 PK。 |
void addBattleListener(BattleListener listener);
参数名 | 类型 | 是否必填 | 描述 |
listener | 必填 | 监听器。 |
void removeBattleListener(BattleListener listener);
参数名 | 类型 | 是否必填 | 描述 |
listener | 必填 | 监听器。 |
Future<BattleRequestCompletionHandler> requestBattle({required BattleConfig config,required List<String> userIDList,required int timeout,});
参数名 | 类型 | 是否必填 | 描述 |
config | 必填 | PK 配置。 | |
userIDList | List<String> | 必填 | 需要进入PK的用户 ID 列表。 |
timeout | int | 必填 | 请求超时时间。 |
Future<CompletionHandler> cancelBattleRequest({required String battleID,required List<String> userIDList,});
参数名 | 类型 | 是否必填 | 描述 |
battleID | String | 必填 | PK ID。 |
userIDList | List<String> | 必填 | 用户ID列表。 |
Future<CompletionHandler> acceptBattle(String battleID);
参数名 | 类型 | 是否必填 | 描述 |
battleID | String | 必填 | PK ID。 |
Future<CompletionHandler> rejectBattle(String battleID);
参数名 | 类型 | 是否必填 | 描述 |
battleID | String | 必填 | PK ID。 |
Future<CompletionHandler> exitBattle(String battleID);
参数名 | 类型 | 是否必填 | 描述 |
battleID | String | 必填 | PK ID。 |
枚举值 | 值 | 说明 |
timeOver | 0 | PK 倒计时结束。 |
allMemberExit | 1 | 所有 PK 成员退出。 |
方法名 | 说明 |
onBattleStarted | 当 PK 正式开始时触发此回调,通知所有参与者 PK 已经开始。 |
onBattleEnded | 当 PK 结束时触发此回调。 |
onUserJoinBattle | 当有用户加入 PK 时触发此回调。 |
onUserExitBattle | 当有用户退出 PK 时触发此回调。 |
onBattleRequestReceived | 当收到 PK 请求时触发此回调。 |
onBattleRequestCancelled | 当 PK 请求被取消时触发此回调。 |
onBattleRequestTimeout | 当 PK 请求超时时触发此回调。 |
onBattleRequestAccept | 当 PK 请求被接受时触发此回调。 |
onBattleRequestReject | 当 PK 请求被拒绝时触发此回调。 |
属性 | 类型 | 说明 |
duration | int | PK 持续时间(单位:秒)。 |
needResponse | bool | 被邀请用户是否需要回复同意/拒绝。 |
extensionInfo | String | 扩展信息。 |
属性 | 类型 | 说明 |
battleID | String | PK ID。 |
config | 发送 PK 请求时,设置的 PK 配置信息。 | |
startTime | int | PK 开始标记时间戳(单位:秒)。 |
endTime | int | PK 结束标记时间戳(单位:秒)。 |
属性 | 类型 | 说明 |
currentBattleInfo | 当前 PK 信息。 | |
battleUsers | PK 用户列表。 | |
battleScore | ValueListenable<Map<String, int>> | PK 分数的映射。 |
属性 | 类型 | 说明 |
battleInfo | 成功时返回的 PK 信息。 | |
resultMap | Map<String, int>? | PK 请求的响应结果映射。 |
// 创建 store 实例final store = BattleStore.create('live_room_123');// 定义监听器late final VoidCallback battleInfoListener = _onBattleInfoChanged;late final VoidCallback battleUsersListener = _onBattleUsersChanged;void _onBattleInfoChanged() {final battleInfo = store.battleState.currentBattleInfo.value;if (battleInfo != null) {print('当前 PK ID: ${battleInfo.battleID}');}}void _onBattleUsersChanged() {print('PK 用户数: ${store.battleState.battleUsers.value.length}');}// 订阅状态变化store.battleState.currentBattleInfo.addListener(battleInfoListener);store.battleState.battleUsers.addListener(battleUsersListener);// 添加 PK 事件监听器final battleListener = BattleListener(onBattleStarted: (battleInfo, inviter, invitees) {print('PK 开始,发起者: ${inviter.userName}');},onBattleEnded: (battleInfo, reason) {print('PK 结束,原因: $reason');},);store.addBattleListener(battleListener);// 发起 PK 请求final config = BattleConfig(duration: 300, needResponse: true);final result = await store.requestBattle(config: config,userIDList: ['user_456'],timeout: 30,);if (result.code == 0) {print('PK 请求成功: ${result.battleInfo?.battleID}');} else {print('PK 请求失败: ${result.message}');}// 取消订阅store.battleState.currentBattleInfo.removeListener(battleInfoListener);store.battleState.battleUsers.removeListener(battleUsersListener);store.removeBattleListener(battleListener);
文档反馈