保利威文档中心

幫助中心

live_js_api

更新時間:2024-12-10 18:07:12

類別

概述

PolyvLiveSdk 是用於建立 SDK 實例的類別

應用場景:當自己實現聊天室的功能時,可以使用到這兩個屬性


類別屬性

屬性名稱 描述 回傳資料類型 備註
emotionLists polyv 表情資料列表 array 已棄用
emotionSearch 鍵值對為 [表情title]: 表情url 的物件 object 已棄用

emotionLists 與 emotionSearch 已棄用且不再維護,請使用 保利威表情 SDK 轉換訊息的表情內容。

全部表情 sprites 圖片位址: https://livestatic.polyv.net/assets/images/em/default.png

/**
 * 获取表情数据列表
 *
 * @return {Array} - 表情数据列表
 */
// 示例代码
console.log(PolyvLiveSdk.emotionLists);
// 返回数据
[
    {
        url: "https://livestatic.polyv.net/assets/images/em/1.png",
        title: "微笑",
        position: "0px 0px"
    }
]
/**
 * 获取表情对象
 *
 * @return {Object} - 对象
 */
// 示例代码
console.log(PolyvLiveSdk.emotionSearch);
// 返回数据
{
    NO: {
        url: "https://livestatic.polyv.net/assets/images/em/89.png",
        title: "NO",
        position: "-4224px 0px"
    }
}

類別方法

方法名 描述 參數
getChannelInfo 取得頻道資訊 見下方範例程式碼區塊
previewPPT 預覽指定的PPT 見下方範例程式碼區塊
/**
 * 获取频道信息
 *
 * @param {string} channelId - 直播后台频道号
 * @param {string} appId - polyv 后台的 appId:开发设置 => 开发者信息 => AppID(应用 ID )
 * @param {string} sign - 频道验证签名
 * @param {string} timestamp - 当前 13 位毫秒级时间戳
 * @return {Promise} - 标准 Promise 对象
 */
// 示例代码
// 注:自动请求的接口:/live/v3/applet/sdk/get-channel-detail
PolyvLiveSdk.getChannelInfo(channelId, appId, sign, timestamp)
    .then(res => {
        console.log(res);
    })

PPT 操作示範

/**
 * 预览指定的ppt
 *
 * @param {object} config - 配置对象
 * @description config - config 列表:
 *	el {DOMSeletor|string} - 需要显示预览ppt的dom选择器
 *	autoId {number|string} - pptId
 *	type {string} - ppt类型
 *	width {number|string} - 可选,ppt宽,默认100%
 *	height {number|string} - 可选,ppt高,默认100%
 *	pptNav {boolean} - 可选,是否显示ppt控制控件,默认`true`
 *	pptNavBottom {string} - 可选,ppt控制栏距离底部距离,例:`pptNavBottom: '50px'
 * @return {function} - previewPPT 对象
 */
// 示例代码
// 需要给 el 元素设置相对定位和宽高
/*
#previewPPT{
    position: relative;
    width: 500px;
    height: 300px;
}
*/

var previewPPT = PolyvLiveSdk.previewPPT({
    el: '#previewPPT',
    autoId: 1329757,
    type: 'new'
});

// 示例事件
previewPPT.on('success', function () {
    console.log('预览成功');
});

previewPPT.on('error', function (err) {
    console.log('预览失败', err);
});

previewPPT.on('pptStatusChange', function (err) {
    console.log('当前页改变', err);
});

// 实例方法
previewPPT.nextPPTPage(); // 使 ppt 切换到下一页,跟随模式下不能切到讲师未讲解的 ppt
previewPPT.prevPPTPage(); // 使 ppt 切换到上一页

// 销毁ppt预览实例
//previewPPT.destroy()


範例

概述

var liveSdk = new PolyvLiveSdk({}) // 建立 SDK 實例


實例屬性

屬性名稱 必選 類型 可選值 預設值 說明
channelId string 頻道ID,支援雲課堂/直播助手/大班課發起的直播
sign string POLYV 頻道資訊獲取介面用到的簽名 簽名規則
請用channelId、timestamp、appId 三個欄位拼接sign
timestamp number POLYV 頻道資訊獲取介面用到的時間戳
註:該時間戳需要與伺服器端獲取的簽名一致
appId string POLYV帳號 appId,從 POLYV 後台獲取
user object {user: string; userName: string; pic: string} {
userId: '', // 使用者ID
userName: '', // 使用者暱稱
pic: '' // 使用者頭像,必須為http/https/ // 開頭連結
}
userId 是聊天室中的使用者唯一識別,兩個相同的 userId 登入聊天室後,後者會將前者踢出聊天室,因此不同的聊天室使用者的 userId 需要具有唯一性,生成建議如下:
1. 如果您有使用者系統,則使用使用者系統中的使用者 ID 作為登入聊天室的 userId
2. 如果您沒有使用者系統,則在後端生成高度隨機的值作為登入聊天室的 userId,如:「時間戳 +5 位隨機數」、uuid 等,並將該 userId 儲存到 cookie 或本地儲存(localStorage 或 sessionStorage)中,避免每次重新整理頁面後重新生成 userId
updatePageview boolean false 設定後每當呼叫實例polyv的觀看頁上的累計觀看人數會增加一個
chat boolean true 是否連接聊天室,在直播模式下如果呼叫直播播放器必須連接聊天室,所以即使設定為false,在初始化直播播放器時會自動連接聊天室,回放模式下可以不連接
keepChatDisabled boolean false 直播模式是否保持不連接聊天室,在chat: false 設定後回放的場景會不連接聊天室,直播時會連接聊天室,如果需要在直播時需要保持聊天室關閉可設定該參數。需要注意的是設定後需要依賴聊天室信令的功能會不可用,如PPT、無延遲、連麥、互動功能等,chat: false設定後該參數才會生效
lang string 'zh_CN' | 'en' 'zh_CN' 設定播放器語言
'zh_CN' : 中文
'en': 英文
param4 string 播放器統計參數
param1、param2,param3被預設為userId和userName以及直播狀態,所以設定無效
param5 string 播放器統計參數
code string 跑馬燈的授權參數
socket object 此參數預設會建立socket,同時支援外部傳入socket或聊天室sdk的socket
註:若使用聊天室sdk或者自行建立的聊天室,必須把實例出來的socket傳入到此欄位,不然會導致重複登入聊天室出現異常
使用方式:見如下範例
lotteryEnabled string 'Y' | 'N' 設定為'N'時,進行普通抽獎時會過濾目前使用者

直播SDK & 聊天室SDK 範例程式碼(以 polyv 聊天室 SDK 為例)

var chatroom = new PolyvChatRoom({  //实例聊天室SDK
  roomId: channelId,
  userId: userId,
  nick: userName,
  pic: pic,
  userType: 'slice'
});

var liveSDK = new PolyvLiveSdk({   //实例直播SDK
  channelId: channelId,
  appId: appId,
  sign: sign,
  timestamp: timestamp,
  socket: chatroom.chat.socket,    //传入聊天室的socket
  user: {
    userId: userId,
    userName: userName,
    pic: pic
  }
});

實例方法

1.初始化播放器

說明:初始化播放器,必須在頻道資訊事件觸發後呼叫參數:config 播放器配置物件
使用:liveSdk.setupPlayer(config: object)

範例程式碼:

var config = {
    pptEl: '#ppt',
    el: '#player',
    type: 'auto',
    autoplay: false,
    audioMode: false,
    width: '100%',
    height: '100%',
    pptWidth: '100%',
    pptHeight: '100%',
    controllerPosition: 'ppt',
    controller: true,
    pptNav: true,
    // 回放模式需要fileId、url、sessionId
    fileId: undefined,
    url: undefined,
    sessionId: undefined
}
// 监听频道信息并初始化播放器
liveSdk.on(PolyvLiveSdk.EVENTS.CHANNEL_DATA_INIT, (event, data) => {
  liveSdk.setupPlayer(config);
});

參數說明:

參數名 必選 類型 可選值 預設值 說明
el string id或class 講師區域元素
pptEl string id或class ppt 文件元素選擇器,非雲課堂(三分屏)可不填,
註:僅在三分屏生效
width string | number '100%' 講師區域寬度
height string | number '100%' 講師區域高度
pptWidth string | number '100%' ppt區域寬度
pptHeight string | number '100%' ppt區域高度
type string 'auto' | 'live' | 'vod' | 'record' 'auto' 播放器播放類型,選擇'auto'後,播放器會以直播->回放列表影片->第一個暫存影片(優先級由大到小)的優先級播放
'auto': 根據頻道實際設定自動選擇播放類型
'live' : 直播
'vod': 回放
'record': 暫存
pptType string 'vod' | 'record' 'vod' 設定 ppt 類型。
用於type: 'vod'模式下指定ppt類型,可選'record''vod',在使用指定暫存場景回放場次時可設定為'record',回放列表可不設定,若調用player.switchVod切換回正常回放列表的場次需傳入'vod'修改為回放列表類型
image-live_record
vodType string 'playback' | 'vod' 設定播放回放類型。
用於type: 'vod'模式下回放播放列表類型(playback-回放列表,vod-點播列表),設定為vod後將使用點播播放器播放,使用點播vid播放,流量將統計到點播平台,所以vid為必填值,若設定type: 'auto',如果當前播放的是回放則按點播列表播放
vodToken object ((vid: string, next: (data: VodToken) => void) => void) | VodToken 點播加密影片驗證參數,若確認播放的點播影片存在加密影片則需傳入驗證參數,可參考 播放加密影片
範例:image-live_vodToken
responseSettings boolean fasle 在設定自動播放模式type: 'auto'時播放回放是否按照Polyv後台設定播放影片
autoplay boolean false 是否自動播放,行動端因為瀏覽器限制,可能不生效
audioMode boolean false 講師畫面以音訊模式播放
註:僅在行動端生效
controller boolean true 是否顯示控制欄
註:因為裝置相容問題,在行動端中建議顯示控制欄
controllerPosition string 'ppt' | 'player' 'ppt' 控制欄顯示在哪個區域
'ppt': ppt區域
'player': 講師區域
註:因為考慮到相容的問題,該設定只在 PC 端的三分屏生效
fixedController boolean false 固定顯示控制欄,設定後控制欄不跟隨滑鼠離開隱藏
註:僅在 PC 端生效
pptNav boolean true 是否顯示ppt控制元件
註:僅在三分屏生效
pptNavBottom string ppt控制欄距離底部距離,例:pptNavBottom: '50px'
註:僅在三分屏生效
pptPlaceholder boolean false 是否在直播模式並且當前暫無直播時在ppt區域顯示佔位圖
註:僅在三分屏生效
fileId string ppt資料id,回放模式必填
url string 回放影片連結,回放模式必填
sessionId string
clipSessionId string 裁剪合併影片id
vid string 回放id,回放模式下傳入該參數,可不傳fileIdurlsessionId
barrage boolean false 是否開啟彈幕
defaultBarrageStatus boolean true 播放器載入時彈幕轉台是否顯示開啟
switchPlayer boolean false 是否在控制欄顯示ppt與player切換按鈕,用於實現主副屏切換,需要監聽player實例的'switchPlayer' 事件做處理,行動端不響應該事件
註:僅在三分屏生效
controllerEl HTMLElement 控制欄區域,設定後控制欄不跟隨ppt與播放器的位置,設定後點擊全屏會將控制欄所在元素全屏,可以實現全屏後同時顯示ppt與講師
註:僅在三分屏生效
useH5Page boolean false 是否開啟微信端H5page設定
fullscreenEl HTMLELement 可設定點擊控制欄全屏按鈕進入全屏的元素,也可以使用liveSdk.player.setFullscreenEl(el?: HTMLElement): void 更新設定,el為空時則使用預設值
註:僅在PC端非IE的場景下生效
theme object 設定部分播放器樣式
{
playerBackgroundImage:'string' | false,// 讲师背景图,false 去掉默认背景图
playerBackgroundColor:'', // 讲师背景颜色(css颜色,如'red'、'#ffffff'、'rgb(0,0,0)'),注意设置后可能被背景图遮挡
pptBackgroundImage: '', // ppt背景图
pptBackgroundColor:'' // ppt背景颜色
}
showPPTFullscreenButton boolean false 是否在ppt中顯示全屏按鈕
該全屏效果只是實現頁面全屏,可能會與頁面本身樣式有衝突導致全屏時樣式異常,所以開發時如果用到該功能注意看看有沒有樣式衝突,有的話可監聽liveSdk.player.on('PPTFullscreenChange') 事件進行調整
註:僅在行動端生效
warmUpImg string 設定暖場圖片
warmUpImgType string 'contain' | 'cover' 'cover' 設定暖場圖片的適配方式
'cover' : 拉伸覆蓋
'contain' : 保持圖片比例
warmUpImgBgColor string '#212121' 十六進位顏色值,當warmUpImgType設定為contain 時,設定圖片未覆蓋區域的顏色
註:僅在行動端生效
skinConfig object 修改播放器非直播狀態、音訊模式、直播暫停時佔位圖
{
streamStop: '' , // 图片地址,用于修改暂无直播时居中图标
streamStopTxt: '', // 用于修改暂无直播时显示的文字,默认为'当前暂无直播',需要streamStop有效
streamPause: '', // 图片地址,用于修改直播暂停状态时居中图标
streamPauseTxt: '', // 用于修改直播暂停时显示的文字,默认为'休息一会 稍后继续',需要streamPause有效
audioMode: '', // 图片地址,用于修改音频模式时居中图标
audioModeTxt: '', // 用于修改音频模式时显示的文字,默认为'当前为音频模式',需要audioMode有效
audioModeVod: '', // 用于修改音频模式回放背景占位图,优先级低于audioMode
bgColor: '', // 设置streamStop, streamPause, audioMode后自定义的背景颜色
}
webviewAutoplay boolean false webview場景支援自動播放(需要webview支援自動播放) 非webview場景也可以使用,強制自動播放,安卓端可能會有黑屏問題
註:僅在直播以及直播回放生效
speed boolean false 是否顯示切換倍速控制項
webPageFullScreen boolean false 是否開啟網頁全屏
註:僅在行動端生效
fullScreenOrientation string 'portrait' \ 'landscape' \ 'none' 'none' 網頁全屏方向
註:僅在行動端生效

2.重新載入播放器

說明:目前支援播放器播放類型為 live 場景的使用,例如當前客戶端沒有推流,使用者開啟頁面,過一段時間後客戶端開始推流,可呼叫此方法重新整理播放器
使用:liveSdk.reloadPlayer(): void

範例程式碼:

liveSdk.setupPlayer({
  // ...
  type: 'live'
  // ...
});

// 监听流状态变化刷新播放器
liveSdk.on(PolyvLiveSdk.EVENTS.STREAM_UPDATE, function() {
  console.log('流状态改变');
  liveSdk.reloadPlayer();
});

3.設定 token

說明:SDK 設定介面 token,用於一些互動功能介面的請求,如按讚(呼叫按讚前需呼叫此方法設定 token)。
參數:token 取得方法
使用:liveSdk.setApiToken(token: string)

範例程式碼:

liveSdk.setApiToken('token');

4.切換回放場次

說明:切換回放場次,用於切換具體播放場次影片
參數:sessionData 需要播放場次的場次資料
使用:liveSdk.switchVod(sessionData: object)
回放操作demo

範例程式碼:

/**
 * 切换回放场次,用于切换具体播放场次视频
 *
 * @param {object} sessionData - 需要播放场次的场次数据
 * @return
 */

liveSdk.setupPlayer({
  // ...
  type: 'vod'
  fileId,
  url,
  sessionId
});
// data 数据是该场次数据,可通过 liveSdk.getPlaybackLists(...) 获取
liveSdk.switchVod({
  fileId: data.videoId,
  url: data.url,
  sessionId: data.channelSessionId
});

//or
liveSdk.setupPlayer({
  // ...
  type: 'vod'
  vid
});
liveSdk.switchVod({
  vid: data.videoPoolId
});

5. 取得回放列表

說明:切換回放場次,用於切換具體播放場次影片
使用:liveSdk.getPlaybackLists(page: number, pageSize: number, type: 'playback'|'vod' = 'playback): Promise

範例程式碼:

liveSdk.getPlaybackLists(1, 5)
.then(function(data) {
    console.log(data);
});

參數說明:

參數名 類型 說明
page number 頁數
pageSize number 每頁筆數
type string playback: 回放列表
vod: 點播列表,點播列表需使用點播播放器播放

6. 取得章節列表

說明:取得章節列表,僅在三分屏生效
使用:liveSdk.getChapterLists(fileId: string, type: string): Promise

範例程式碼:

/**
 * 获取章节列表,注:仅在三分屏生效
 * @return {Promise} - 标准 Promise 对象
 */
// 示例代码
liveSdk.getChapterLists('28acd4bd4526a6daa8368949e7c31713', 'record')
    .then(res => {
        console.log(res);
    })

參數說明:

參數名 類型 說明
fileId string ppt 資料 ID
type string 章節類型
playback:回放
record:暫存

7. 發送聊天訊息

說明:發送聊天訊息
使用:liveSdk.send(message: string, callback?: (data: string) => void): void

範例程式碼:

/**
 * 发送聊天信息
 */
// 示例代码
liveSdk.send('这是一条聊天信息')

參數說明:

參數名 類型 說明
message string 聊天內容

8. 向講師發送提問私訊

說明:向講師發送提問私訊
使用:liveSdk.sendQuestion(message: string): void

範例程式碼:

/**
 * 向讲师发送提问私聊信息
 */
// 示例代码
liveSdk.sendQuestion('这是一条提问信息')

參數說明:

參數名 類型 說明
message string 私聊內容

9. 發送答題卡回答內容

說明:發送答題卡回答內容
使用:liveSdk.sendAnswer(option: string, questionId: string, callback: Function): void

範例程式碼:

/**
 * 发送答题卡回答内容。
 * 1.结合 PolyvLiveSdk.EVENTS.GET_TEST_QUESTION_CONTENT 使用,获取到 questionId。
 * 2.结合 PolyvLiveSdk.EVENTS.GET_TEST_QUESTION_RESULT 获取到答题卡结果,需要讲师点击发送结果。
 * 3.结合 PolyvLiveSdk.EVENTS.STOP_TEST_QUESTION,了解到讲师停止答题。
 */
// 示例代码
liveSdk.sendAnswer(
    option,
    questionId,
    function (res) {
        console.log(res);
    }
)

參數說明:

參數名 類型 說明
option string 答案卡答案, 'A' | 'ABC'
questionId string 答案卡題目ID
callback Function 發送成功回呼

10. 發送自訂訊息

說明:發送自訂訊息,聊天室會廣播這些資訊,由使用者自行定義資料結構,除觀看端外,其他端收到訊息不會解析
使用:liveSdk.sendCustomMessage(messsage: object, callback?: (data: Object) => void): void

範例程式碼:

/**
 * 发送自定义消息,聊天室会广播这些信息,由用户自行定义数据结构
 *
 * @param {object} - config 配置对象
 */
// 示例代码
liveSdk.sendCustomMessage({
    EVENT: 'myMessage', // 自定义消息类型,事件字符长度不大于 20
    version: '1.0', // 自定义消息版本
    emitMode: 0, // 可选,是否广播给自己,0表示广播所有人包括自己,1表示广播给所有人除了自己,2表示只发送给自己
    roomId: channelId, // 频道号
    data: { // 自定义消息内容,由客户定义
        message: value
    },
    tip: '我的自定义消息', // 提示语
});

// 收到自定义消息(仅限于sendCustomMessage发送)
liveSdk.on(PolyvLiveSdk.EVENTS.CUSTOM_MESSAGE, function (event, data) {
    console.log('监听自定义消息: ',data);
});

11.傳送按讚訊息

說明:傳送按讚訊息。【使用按讚方法前,需確保已呼叫 liveSdk.setApiToken()
使用方式:liveSdk.sendLike(times: number): void

範例程式碼:

/**
 * 发送点赞数
 */
// 示例代码
liveSdk.sendLike(1)

參數說明:

參數名 類型 說明
times number 按讚數量,最大不可超過30

12. 取得歷史聊天記錄

說明:取得歷史聊天記錄,參數非必填,預設10筆,配合PolyvLiveSdk.EVENTS.HISTORY_MESSAGE事件使用,收到事件可於聊天列表前方新增資料
使用方式:liveSdk.getHistoryMessage(pageNum: number, start: number): liveSdk

範例程式碼:

// 点击查看更多
var more = true;
$more.on('click', function() {
  if (!more) return;
  // 消息返回后在 `PolyvLiveSdk.EVENTS.HISTORY_MESSAGE` 中返回信息
  liveSdk.getHistoryMessage();
})

// 监听历史内容更新
liveSdk.on(PolyvLiveSdk.EVENTS.HISTORY_MESSAGE, function (event, data, begin, end) {
  console.log(event, data, begin, end);
  // 渲染数据
  render(data);
  if (data.length < 10) {
    console.warn('已经没有更多历史消息');
    more = false;
  }
});

參數說明:

參數名 類型 說明
pageNum number 需要取得的訊息數量
start number 代表距離最新一則聊天訊息往前的第幾則訊息開始

13. 銷毀播放器

說明:銷毀播放器
使用:liveSdk.destroy(disconnectSocket: boolean = true): void

範例程式碼:

/**
 * 销毁播放器
 *
 * @param {string} disconnectSocket - 是否断开 socket
 */
// 示例代码
liveSdk.destroy(true);

參數說明:

參數名 類型 說明
disconnectSocket boolean 是否斷開 socket

14. 發送簽到

說明:發送簽到
使用:liveSdk.toSign(checkinId: string, callback: Function): void

範例程式碼:

/**
 * 发送签到。
 * 结合 PolyvLiveSdk.EVENTS.SIGN_IN 使用,收到讲师发起签到消息和获取到 checkinId。
 * 结合 PolyvLiveSdk.EVENTS.STOP_SIGN_IN 使用,收到讲师停止签到消息,收到后不允许发送签到
 */
// 示例代码
liveSdk.toSign(
    checkinId,
    res => console.log(res)
);

參數說明:

參數名 類型 說明
checkinId string 簽到 ID
callback function 發送簽到回呼,回傳的 code 說明如下
200:簽到成功
301:簽到的使用者未登入聊天室
302:房間不在簽到狀態中
303:該使用者已簽到

15. 發送問卷答案

說明:發送問卷答案
使用:liveSdk.sendQuestionnaireAnswer(questionnaireId: string, answer: [], callback: Function): void

範例程式碼:

/**
 * 发送问卷答案
 * 结合 PolyvLiveSdk.EVENTS.START_QUESTIONNAIRE 使用,收到问卷消息和获取到 questionnaireId、questionId
 * 结合 PolyvLiveSdk.EVENTS.STOP_QUESTIONNAIRE 使用,了解到讲师停止问卷
 */
// 示例代码
liveSdk.sendQuestionnaireAnswer(
    questionnaireId,
    [
        {
            questionId: questionId,
            answer: 'A'
        }
    ],
    function(res){
        console.log(res);
    }
)

參數說明:

參數名稱 類型 說明
questionnaireId string 檔案 ID
answer array 答案列表
文件 ANSWER_QUESTIONNAIRE 中的 answer 一致
callback function 發送回調
200:答題成功
301:問卷已結束
302:該學生已提交過答案
303:使用者未登入,即目前使用者不在聊天室

16.查詢當前頻道直播狀態

說明:查詢當前頻道直播狀態,僅在開啟直播錄製時有效。
使用:liveSdk.getCloudClassRoomStatus(): Promise

範例程式碼:

liveSdk.getCloudClassRoomStatus()
.then(function(resp) {
  if (resp.status === 'success') {
    // liveStart(开始上课)、liveRecovery(恢复)、liveSuspend(暂停)、liveFinish(结束)
    console.log('当前直播状态为:' + resp.data.status);
  }
});

17.修改暱稱

說明:修改暱稱,可監聽 PolyvLiveSdk.EVENTS.SET_NICK_STATUS 事件以取得修改狀態。
使用:liveSdk.setNick(newName: string): void

範例程式碼:

// 调用该方法设置新的昵称
liveSdk.setNick('新的昵称');

// 监听修改状态
liveSdk.on(PolyvLiveSdk.EVENTS.SET_NICK_STATUS, function(event, resp) {
    if (resp.status === 'success') {
      // 修改成功,需要页面记录设置的昵称以便下次进来用同样的昵称
          console.log(`修改昵称成功,新的昵称为:${resp.nick}`)
    } else {
        console.log(`修改昵称失败 ${resp.message}`)
    }
});

實例 player 物件

liveSdk.player: 呼叫 setupPlayer 後建立的播放器實例,可用於控制播放器播放相關互動

物件屬性

demo

物件屬性,何時可以取得?

  • ​ 當呼叫 setupPlayer 後建立的播放器實例,才能取得的物件屬性:currentTimeplaybackRatecameraStatussupportFullScreenfullScreenbarrageStatuslevelslevel
  • 需等待 loadedmetadata 事件後,才能取得的物件屬性:durationvolumepausedlineslinecurrentPPTPagetotalPPTPages

範例程式碼:

// 示例代码
liveSdk.player.on('loadedmetadata', function () {
    console.log('获得当前视频时长');
    console.log(liveSdk.player.duration);
});
屬性名稱 類型 回傳說明
duration number 影片長度,單位:秒
currentTime number 目前播放的進度
playbackRate number 目前倍速
volume number 目前音量
cameraStatus boolean 目前講師攝影機是否被關閉
paused boolean 目前是否為暫停播放狀態
supportFullScreen boolean 是否支援全螢幕
fullScreen object 播放器全螢幕實例,內部封裝了進入全螢幕及退出全螢幕的方法,可對頁面任意 DOM 操作
lines number 目前頻道有多少條線路,需在 loadedmetadata 時間後存取
line number 目前播放的線路 0/1
currentPPTPage number 目前顯示的 PPT 頁碼,若目前顯示 PDF 或白板則回傳 1
totalPPTPages number 目前使用的 PPT 總頁數,若目前使用 PDF 或白板則回傳 1
barrageStatus boolean 目前彈幕狀態
levels number 目前的碼率數,行動端暫不支援
level number 目前的清晰度,0/1/2 遞增,如果頻道只有一個碼率則回傳 0,行動端暫不支援

#####全螢幕範例說明 liveSdk.player.fullScreen.request($dom: HTMLElement): void:將指定元素進入全螢幕狀態,在行動裝置中僅對 video 元素生效,實際支援度需視瀏覽器而定。 liveSdk.player.fullScreen.exit(): void:退出全螢幕狀態。

範例程式碼:

console.log('获取播放器全屏实例', liveSdk.player.fullScreen);
// 将指定元素进入全屏状态移动端中只在video中生效,具体需要看浏览器支持度,注意,参数是 DOM 元素
liveSdk.player.fullScreen.request(document.querySelector("#ppt > div"))
// 退出全屏状态
liveSdk.player.fullScreen.exit()

物件方法

demo 範例程式碼:

liveSdk.player.setVolume(1); // 设置播放器音量
方法名 參數 說明
setVolume (volume: number) 設定播放器音量,範圍[0, 1]
行動裝置無效,採用裝置本身音量控制
play 恢復播放影片
pause 暫停播放影片
togglePlay 交替恢復暫停播放影片
resize 重新整理 PPT 尺寸,播放期間若對 PPT 容器尺寸有變更,PPT 尺寸可能異常,在變更尺寸後呼叫此方法恢復正常尺寸
直播中設定無效
seek (time:number) 請求到指定播放進度,單位:秒
setRate (rate: number) 切換倍速,可選 0.5、1、1.25、1.5、2(行動裝置受裝置限制,不支援切換倍速)
直播中暫不支援切換倍數
switchCamera (hide: boolean) 是否隱藏講師攝影機
switchLine (line: number) 切換當前線路,line 由 number 0 遞增,代表線路1、線路2...
switchPPTDocMode (control: boolean) 直播時切換 PPT 模式,設定 true PPT 可由使用者自行控制 PPT 內容,不跟隨客戶端控制(自由模式),反之。呼叫回傳是否切換成功(跟隨模式)
nextPPTPage 使 PPT 切換到下一頁,跟隨模式下不能切到講師未講解的 PPT
prevPPTPage 使 PPT 切換到上一頁
sendBarrage (text: string, color: string) 發送彈幕 text 為彈幕內容,color 為彈幕顏色,如 '#ffffff';
必須設定 barrage: true
hideBarrage 隱藏彈幕
showBarrage 恢復彈幕顯示
toggleBarrage 交替隱藏彈幕
resizeBarrage 重新整理彈幕尺寸,播放器尺寸更新時呼叫
switchLevel (level: number) 切換清晰度,由 0 遞增
changePPTNavVisible (hide: boolean) 隱藏顯示 PPT 翻頁控制項
setFullscreenEl (el: HTMLElement) 更新全螢幕元素設定,el 為空時則使用預設值

物件事件

demo 範例程式碼:

liveSdk.player.on('playing', function () {
    console.log('恢复播放');
});
事件名稱 說明
playing 恢復播放
pause 暫停播放
timeupdate 播放進度更新
loadedmetadata 影片載入成功可準備播放,可對播放器進行 play()、pause() 等操作
ended 播放結束
ratechange 倍速改變
volumechange 音量改變
lineChanged 線路改變
barrageStatusChange 彈幕狀態改變,返回 true(開啟彈幕)、false(關閉彈幕)
switchPlayer 點擊控制欄切換按鈕觸發,可用於切換 ppt 與講師位置,切換樣式需自行實作
levelChanged 清晰度改變,返回切換後清晰度
error 影片播放錯誤
switchMainScreen 切換主副螢幕播放器回呼,初始化播放器時會收到一次回呼為當前初始值
'player' | 'ppt'
mutedAutoplay 靜音自動播放回呼,因受限於瀏覽器自動播放策略,在不支援自動播放時會採取靜音自動播放策略,此時會觸發該事件,可用於對使用者進行相應提示,讓使用者恢復音量
在非无延迟的pc端才支持

PPT 操作相關事件

範例程式碼:

liveSdk.player.on('pptStatusChange', function(data) {
  /*
  {
    page: 3,  // 当前是第几页
    total: 30, // 当前ppt总页数
    type: 'ppt' // ('ppt'|'whiteboard') 当前显示类型,ppt或白板
  }
  */
  console.log(data);
});
事件名稱 說明
pptStatusChange ppt 狀態改變,包含目前頁數變更(ppt 更換、ppt 與白板切換)、翻頁,請注意白板狀態時無法翻頁
whiteboardOpened 講師開啟白板
whiteboardClosed 講師關閉白板,恢復為 PPT
PPTFullscreenChange ppt 全螢幕狀態變化,設定 showPPTFullscreenButton: true 後才會觸發

彈幕使用說明

  • 需要自行監聽聊天室的聊天訊息事件,並呼叫liveSdk.player.sendBarrage方法傳送彈幕
  • 彈幕顯示在控制欄所在的播放器,行動裝置固定顯示在講師畫面處
  • 若播放器尺寸發生變化,需呼叫liveSdk.player.resizeBarrage()重新整理彈幕

實例事件

事件方法

liveSdk.on(event: string, func: Function) 事件監聽方法

範例程式碼:

/**
 * 事件监听方法
 *
 * @param {string} event - 绑定事件名称
 * @param {Function} func(event: string, data: object) - 事件回调函数
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.CHANNEL_DATA_INIT, function (event, data) {
    console.log('事件:',event);
    console.log('数据:',data);
});

綁定事件

範例程式碼:

/**
 * 绑定事件,只触发一次
 *
 * @param {string} event - 绑定事件名称
 * @param {Function} func(event: string, data: object) - 事件回调函数
 */
// 示例代码
liveSdk.once(PolyvLiveSdk.EVENTS.CHANNEL_DATA_INIT, function (event, data) {
    console.log('事件:',event);
    console.log('数据:',data);
});

解除事件綁定

範例程式碼:

/**
 * 解除事件绑定
 *
 * @param {string} event - 绑定事件名称
 * @param {Function} func - 事件回调函数
 */
// 示例代码
liveSdk.off(PolyvLiveSdk.EVENTS.CHANNEL_DATA_INIT, function () {
    console.log('解除事件绑定');
});

事件列表

1.頻道資訊獲取完成

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.CHANNEL_DATA_INIT(event: string, data: object)
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.CHANNEL_DATA_INIT, function (event,data) {
    console.log('频道信息获取完成', data);
});

data 回傳參數詳情

屬性名 類型 說明
channelId number 直播頻道 ID
userId string 直播使用者 ID
name string 直播頻道名稱
desc string 直播頻道描述
publisher string 主持人姓名
likes number 目前按讚數
pageView number 累計觀看人數
coverImage string 直播圖示
status string 直播狀態 Y(目前正在直播)、N(目前暫無直播)
startTime string 直播開始時間
stream string 頻道串流名稱
roomId string 聊天室的房間號碼,如果頻道未分配房間,則為頻道號
scene string 直播場景,alone(活動拍攝)、ppt(三分屏)、topclass(大班課)
splashEnabled string 引導圖開關,Y(開)、N(關)
splashImg string 引導圖片
warmUpImg string 暖場圖片地址
warmUpFlv string 暖場影片地址
playbackEnabled string 後台回放開關,Y(開)、N(關)
hasPlayback boolean 是否有回放影片
sessionId string 頻道目前場次資訊,若目前未直播,則回傳上一場直播的場次 ID
watchStatus string 觀看頁狀態,live(直播中)、playback(回放中)、end(已結束)、waiting(未開始)
playbackOrigin string 回放影片來源,後台設定的回放類型,record(暫存列表)、playback(回放列表)、vod(隨選列表)
resolutionWidth number 解析度寬度
resolutionHeight number 解析度高度
country string 城市
watchThemeModel object 觀看頁主題資訊
{
pageSkin: string;
defaultTeacherImage: string;
watchLayout: 'ppt' | 'player'
}
recordFileSimpleModel object 頻道錄製檔案, 沒有錄製影片時,該欄位值為 null
{
m3u8: string | null
mp4: string | null
fileId: string;
channelSessionId: string;
duration: number;
[propName: string]: string | number | null
}
channelMenus Array 自訂選單列表
[{
menuId: string, // 選單 ID
menuType: string, // 選單類型 desc(直播介紹)、tuwen(圖文直播)、quiz(諮詢提問)、text(圖文選單)、chat(互動聊天)、iframe(推廣外部連結)
name: string, // 選單名稱
ordered: number, // 選單排序,從 1 開始
content: string // 選單內容
}]

2. 回放章節初始化完成

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.PLAYBACK_INIT(event: string, data: object)
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.PLAYBACK_INIT, function (event,data) {
    console.log('回放章节初始化完成', data);

    // data返回数据
    {
         sessionId: '123',
         fileId: '123'
    }
});

3. 串流狀態更新,可用來判斷目前是否有直播正在推流

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.STREAM_UPDATE(event: string, status: 'live'|'end')
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.STREAM_UPDATE, function (event,status) {
    console.log('流状态更新', status);
    liveSdk.reloadPlayer();// 刷新播放器
});

4. 非本人的使用者發言

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.SPEAK(event: string, data: object)
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.SPEAK, function (event,data) {
    console.log('收到非本人的用户发言', data);

    // data返回聊天信息数据
    {
        EVENT: 'speak',
        content: 'test',  // 聊天具体内容
        currentUser: false, // 是否为当前用户
        custom: false, // 是否是自定义消息
        formatTime: '2019-07-02 14:12',
        id: '65975130-9c90-11e9-94b0-fd61e3983999',  // 消息id
        reward: false,
        time: 1562047960506,
        user: { // 用户信息
          banned: false,
          channelId: '275682',
          clientIp: '61.144.146.199',
          nick: 'polyv',
          pic: '//livestatic.videocc.net/v_314/assets/wimages/missing_face.png',
          roomId: '275682',
          sessionId: 'f8qnsda4zq',
          uid: 'Ph4UtYfnxQo7pZK6AkbP',
          userId: '1562047951865',
          userType: 'slice',
        }
    }
});

5. 本人的發言

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.SEND_MESSAGE(event: string, data: object)
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.SEND_MESSAGE, function (event,data) {
    console.log('本人的发言', data);

    // data返回聊天信息数据, 和 非本人的用户发言  返回的数据一致
})

6. 發送提問訊息回呼

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.S_QUESTION(event: string, data: object)
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.S_QUESTION, function (event,data) {
    console.log('发送提问消息回调', data);

    // data返回数据
    {
        EVENT: 'S_QUESTION',
        content: '1+1=多少',
        currentUser: true,
        custom: false,
        reward: false,
        roomId: '275682',
        user: {
          // ... 用户信息
        }
    }
})

7. 管理員或講師回答提問

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.T_ANSWER(event: string, data: object)
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.T_ANSWER, function (event,data) {
    console.log('管理员或讲师回答提问', data);

    // data返回数据
    {
        EVENT: 'T_ANSWER'
        content: '等于2'
        roomId: '275682'
        s_userId: '1559030433536', // 被回答用户id
        user: {
          // ... 用户信息
        }
    }
})

8. 收到自訂訊息

程式碼範例:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.CUSTOMER_MESSAGE(event: string, data: object)
 * 一般由 https://help.polyv.net/#/live/api/v4/chat/send_custom_message 发起才会触发此回调
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.CUSTOMER_MESSAGE, function (event,data) {
    console.log('收到自定义消息', data);

    // data返回数据,具体数据结构由用户自行定义
})

9.清除聊天記錄回調

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.REMOVE_HISTORY
 * 清除聊天记录,页面可收到该消息后清除页面聊天内容
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.REMOVE_HISTORY, function () {
    console.log('清除聊天记录回调');
})

10.清除某一條聊天訊息回調

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.REMOVE_CONTENT(event: string, data: object)
 * 清除某一条聊天信息,页面可收到该消息后清除相应聊天内容
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.REMOVE_CONTENT, function (event,data) {
    console.log('清除某一条聊天信息', data);

    // data返回数据,被删除消息内容
    {
        EVENT: 'removeContent',
        id: '65975130-9c90-11e9-94b0-fd61e3983999', // 被删除消息的id
        roomId: '275682'
    }
})

11. 取得歷史聊天資訊完成

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.HISTORY_MESSAGE(event: string, data: object)
 * 获取历史聊天信息完成
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.HISTORY_MESSAGE, function (event,data) {
    console.log('获取历史聊天信息完成', data);

    // data返回数据,历史聊天信息,内容为speak事件内容组成的数组
})

12. 發言失敗

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.PROHIBIT_TO_SPEAK
 * 发言失败,可能由于聊天室为连接但发送聊天消息等发送错误触发
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.PROHIBIT_TO_SPEAK, function () {
    console.log('发言失败', data);
})

13. 使用者被禁止發言

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.ADD_SHIELD
 * 用户被禁止发言
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.ADD_SHIELD, function (event, data) {
    console.log('用户被禁止发言', data);
    
     // data返回数据, 可以根据data里面返回的userId来判断是哪个用户
})

14. 使用者被恢復發言

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.REMOVE_SHIELD
 * 用户被恢复发言
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.REMOVE_SHIELD, function (event, data) {
    console.log('用户被恢复发言', data);
    
    // data返回数据, 可以根据data里面返回的userId来判断是哪个用户
})

15. 頻道內用戶登入事件

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.LOGIN(event: string, data: object)
 * 频道内用户登录事件
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.LOGIN, function (event,data) {
    console.log('频道内用户登录事件', data);

    // data返回数据,用户信息
    {
        EVENT: 'login',
        onlineUserNumber: 3, // 当前在线人数
        timeStamp: 1562051459569,
        user: {
          // 用户信息
        }
    }
})

16.頻道內用戶退出事件

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.LOGOUT(event: string, data: object)
 * 频道内用户退出事件
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.LOGOUT, function (event,data) {
    console.log('频道内用户退出事件', data);

    // data返回数据,用户信息
    {
        EVENT: 'loginOut',
        channelId: '275682',
        onlineUserNumber: 2,  //当前在线人数
        roomId: '275682',
        timeStamp: 1562051345281,
        uid: 'LVexVHpKvK0KOU_0Ak4L',
    }
})

17. 頻道內用戶踢出房間

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.LOGIN_REFUSE(event: string, data: object)
 * 频道内有用户被踢出房间,包含用户以及本身
 * 一般应用于再次登录后需要获取是否被踢出房间
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.LOGIN_REFUSE, function (event,data) {
    console.log('频道内有用户被踢出房间,包含用户以及本身', data);

    // data返回数据, 被踢用户数据
    {
        EVENT: 'LOGIN_REFUSE',
        data: {referField: '1559030433537', type: 'userId'}
    }
})

18. 當前使用者被踢出房間

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.BAN_USER_ROOM
 * 当前用户被踢出房间,这时候会自动断开聊天室连接
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.BAN_USER_ROOM, function () {
    console.log('当前用户被踢出房间');
})

19. 收到講師發起簽到訊息

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.SIGN_IN(event: string, data: object)
 * 收到讲师发起签到消息,可调用 `liveSdk.toSign` 方法发送签到
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.SIGN_IN, function (event,data) {
    console.log('收到讲师发起签到消息', data);

    // data返回数据, 签到数据
    {
        EVENT: 'SIGN_IN',
        data: {
          checkinId: '07ff9330-9c99-11e9-8aa1-37da87', // 签到id
          createTime: 1562051668963,
          limitTime: '30', // 签到时间,页面需要根据这个时间显示倒计时,结束后不允许再签到
          message: '各位同学开始签到了' // 签到提示文案
        }
        roomId: '275682'
    }
})

20. 收到講師停止簽到訊息

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.STOP_SIGN_IN
 * 收到讲师停止签到消息,收到后不允许发送签到
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.STOP_SIGN_IN, function () {
    console.log('收到讲师停止签到消息');
})

21. 收到公告訊息

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.BULLETIN(event: string, data: object)
 */
liveSdk.on(PolyvLiveSdk.EVENTS.BULLETIN, function (event,data) {
    console.log('收到公告消息', data);

    // data返回数据, 公告消息
    {
        EVENT: 'bulletin',
        content: '公告内容'
    }
})

22. 刪除公告訊息

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.REMOVE_BULLETIN
 * 删除公告消息
 */
liveSdk.on(PolyvLiveSdk.EVENTS.REMOVE_BULLETIN, function () {
    console.log('删除公告消息');
})

23. 收到問卷訊息

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.START_QUESTIONNAIRE(event: string, data: object)
 * 收到问卷消息, 回答后可使用`liveSdk.sendQuestionnaireAnswer` 方法发送答案
 */
liveSdk.on(PolyvLiveSdk.EVENTS.START_QUESTIONNAIRE, function (event,data) {
    console.log('收到问卷消息', data);

    // data返回数据, 问卷内容,与polyv 聊天室 START_QUESTIONNAIRE 事件数据一致
})

24.講師停止問卷

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.STOP_QUESTIONNAIRE(event: string, data: object)
 */
liveSdk.on(PolyvLiveSdk.EVENTS.STOP_QUESTIONNAIRE, function (event,data) {
    console.log('讲师停止问卷', data);

    // data返回数据, 问卷ID
})

25. 取得問題內容

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.GET_TEST_QUESTION_CONTENT(event: string, data: object)
 */
liveSdk.on(PolyvLiveSdk.EVENTS.GET_TEST_QUESTION_CONTENT, function (event,data) {
    console.log('获取问题内容', data);

    // data返回数据, 答题卡消息
})

26. 獲取答題結果

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.GET_TEST_QUESTION_RESULT(event: string, data: object)
 */
liveSdk.on(PolyvLiveSdk.EVENTS.GET_TEST_QUESTION_RESULT, function (event,data) {
    console.log('获取答题结果', data);
})

27. 停止作答

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.STOP_TEST_QUESTION(event: string, data: object)
 */
liveSdk.on(PolyvLiveSdk.EVENTS.STOP_TEST_QUESTION, function (event,data) {
    console.log('停止答题', data);
})

28. 直播錄製暫停

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.ON_PAUSE_RECORD(event: string, data: object)
 */
liveSdk.on(PolyvLiveSdk.EVENTS.ON_PAUSE_RECORD, function (event,data) {
    console.log('直播录制暂停(课间休息)', data);
})

29. 恢復錄製

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.ON_START_RECORD(event: string, data: object)
 */
liveSdk.on(PolyvLiveSdk.EVENTS.ON_START_RECORD, function (event,data) {
    console.log('恢复录制(休息结束,恢复直播)', data);
})

30. 退出錄製

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.ON_EXIT_RECORD(event: string, data: object)
 */
liveSdk.on(PolyvLiveSdk.EVENTS.ON_EXIT_RECORD, function (event,data) {
    console.log('退出录制(下课)', data);
})

31. 下課/結束直播

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.FINISH_CLASS(event: string, data: object)
 */
liveSdk.on(PolyvLiveSdk.EVENTS.FINISH_CLASS, function (event,data) {
    console.log('讲师点击下课按钮下课/结束直播', data);
})

32. 修改暱稱狀態回調

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.SET_NICK_STATUS(event: string, data: object)
 */
liveSdk.on(PolyvLiveSdk.EVENTS.SET_NICK_STATUS, function (event,data) {
    console.log('修改昵称状态回调', data);
})

33. 點讚事件

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.LIKES(event: string, data: object)
 */
liveSdk.on(PolyvLiveSdk.EVENTS.LIKES, function (event,data) {
    console.log('收到点赞事件', data);
})

34. 最大並發登入事件

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.MAX_VIEWER_LOGIN(event: string)
 */
liveSdk.on(PolyvLiveSdk.EVENTS.MAX_VIEWER_LOGIN, function (event) {
    console.log('收到最大并发登录事件', data);
    // TODO:跳出页面/页面提示
})

35. 頻道內同一用戶重複登入事件

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.RELOGIN(event: string, data: object)
 * 频道内同一用户重复登录事件
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.RELOGIN, function (event,data) {
    console.log('频道内同一用户重复登录事件', data);

    // data返回数据,用户信息
    {
        EVENT: 'RELOGIN',
        channelId: 'channelId',
        user: {
          // 用户信息
        }
    }
})

36. 頻道資訊初始化失敗回呼

範例程式碼:

/**
 * 事件名称:PolyvLiveSdk.EVENTS.CHANNEL_DATA_INIT_ERROR(error: string, msgDetails: string)
 * 频道初始化失败的回调
 */
// 示例代码
liveSdk.on(PolyvLiveSdk.EVENTS.CHANNEL_DATA_INIT_ERROR, function (error, msgDetails) {
    console.log('频道初始化失败', error, msgDetails);
})
联系客服,在线咨询