保利威文档中心

幫助中心

聊天重播

更新時間:2025-11-19 16:08:38

一、功能概述

二、使用方式 - 方法

2.1 初始化聊天訊息重播

API 方法: initChatMsgReplay(): Promise<void>

從 v0.3.0 版本開始支援 此方法需在 setChatMsgReplayPlaybackTarget 之後執行,聊天室模組才能正常初始化聊天重播記錄,使用過程中會回呼 ChatEvents.ChatMsgReplayStatusChange 事件

範例:

watchCore.chat.eventEmitter.on(ChatEvents.ChatMsgReplayStatusChange, ({ status }) => {
  console.info(status)
}

// 需要先执行 setChatMsgReplayPlaybackTarget 方法
await watchCore.chat.initChatMsgReplay()

2.3 取得聊天訊息重播歷史資料

透過 getChatMsgReplayHistoryList 來取得聊天訊息重播的歷史資料

API 方法: getChatMsgReplayHistoryList(options: Object): Promise<ChatReplayMsgType[]>

從 v0.3.0 版本開始支援

參數說明:

  • options:Object 類型,必填,詳細類型說明如下
參數名 說明 類型 必須 預設值
mode 聊天重播請求歷史資料模式 ChatReplayRequestHistoryMode -
replayMsg 根據指定的模式傳入對應的重播訊息,例如需要載入舊資料,則傳入目前聊天資料中的第一條訊息 ChatReplayMsgType -
count 聊天數量,限制最大值為 60 number -

回傳值說明: 聊天訊息重播歷史資料,Promise<ChatReplayMsgType[]> 類型

範例:

import { ChatReplayRequestHistoryMode } from "@polyv/live-watch-sdk"
const data = await watchCore.chat.getChatMsgReplayHistoryList({
   mode: ChatReplayRequestHistoryMode.Init,
   count: 20
})

2.4 處理聊天訊息重播

外部使用時,需結合觀看頁 SDK 的 PlayerEvents.TimeUpdate 事件回呼一起使用,使用過程中,可透過 ChatEvents.ChatMessage` 事件來取得重播的訊息 由於重播時可透過播放器進度條快速跳轉,此時可透過 ChatEvents.ChatMsgReplayReload 事件來監聽是否需要重新載入聊天室資料

API 方法: processChatMsgReplay(params: Object): void

從 v0.3.0 版本開始支援

參數說明:

  • params:Object 類型,必填,詳細類型說明如下
參數名 說明 類型 必須 預設值
currentTime 目前播放時間,單位:秒 number -
durationTime 播放總時長,單位:秒 number -

範例:

watchCore.chat.eventEmitter.on(ChatEvents.ChatMessage, ({ chatMsg })=> {
   console.info(chatMsg);
})

watchCore.chat.eventEmitter.on(ChatEvents.ChatMsgReplayReload, ()=> {
   console.info("重新加载聊天室数据");
})

watchCore.player.eventEmitter.on(PlayerEvents.TimeUpdate, params => {
   watchCore.chat.processChatMsgReplay(params);
});

三、使用方式 - 事件

3.1 聊天訊息重播狀態

Event 事件: ChatEvents.ChatMsgReplayStatusChange

回呼參數: Object 物件,詳細類型說明如下

屬性名 說明 類型
status 重播狀態 ChatMsgReplayStatus

範例:

watchCore.chat.eventEmitter.on(ChatEvents.ChatMsgReplayStatusChange, (params) => {
  console.log('聊天重放状态变更:', params.status);
});

3.2 聊天訊息重播-重新載入

說明: 通知外部重新載入聊天重播的資料

Event 事件: ChatEvents.ChatMsgReplayReload

回呼參數: Object 物件,詳細類型說明如下

屬性名 說明 類型
seconds - number

範例:

watchCore.chat.eventEmitter.on(ChatEvents.ChatMsgReplayReload, () => {
  // initChatMsgRender
  console.log('需要重新加载聊天重放数据渲染表格');
});

3.3 聊天訊息事件

說明: 收到聊天訊息後觸發此事件

Event 事件: ChatEvents.ChatMessage

回呼參數: Object 物件,詳細類型說明如下

屬性名 說明 類型
chatMsg 聊天訊息物件 ChatMsgType
isChatReplayMsg 是否為聊天重播訊息 boolean

範例:

// 聊天消息列表
const chatMsgList: ChatMsgType[] = [];

// 聊天消息事件
watchCore.chat.eventEmitter.on(ChatEvents.ChatMessage, (data) => {
// 插入到聊天消息列表
  chatMsgList.push(data.chatMsg);
  // 渲染聊天消息...
});
联系客服,在线咨询