保利威文档中心

幫助中心

2-快速集成

更新時間:2025-11-25 14:02:08

閱讀準備

準備好一個保利威帳號,並在直播後台中的設定 -> 開發者設定頁面中獲取帳號直播系統中的 appId(應用 ID),appSecret(應用密鑰),userId(帳號 ID);直播->直播列表中獲取 channelId(頻道號)。若為登入回放則額外需要頻道號對應回放列表裡的 vid(回放影片 id)。

環境要求

名稱 要求
Hbuilderx >=4.85

使用方式

第一種:使用 PLVLiveScenesPluginHelper (推薦)

下載 PLVLiveScenesPluginHelper 並放入專案目錄內;如果您使用 vscode 進行開發,則可以將目錄內的 .d.ts 一併帶入,獲得更好的型別提示

使用 PLVLiveScenesPluginHelper 您將無需關心如何引入以及引入原生插件順序。

import { PLVLiveScenesPluginHelper } from "项目目录/plv-live-scense-plugin-helper";

實例化插件

建立插件實例,後續所有操作都透過該實例進行。

const plugin = PLVLiveScenesPluginHelper(options);

PLVLiveScenesPluginHelper(options)

參數 options:

參數名 類型 必填 描述
type PluginType 插件類型,預設為 LiveScenesPlugin
env String 插件執行環境,預設為 development, 可選值包括 'development' 和 'production' 該值決定日誌輸出行為
enum PluginType {
  /** 纯观看插件 */
  LiveScenesPlugin = "PLV-LiveScenesPlugin",
  /** 观看 + 开播复合插件 */
  LiveScenesHostPlugin = "PLV-LiveUniPlugin",
}

initService(options)

初始化插件服務。在使用其他功能之前,必須先呼叫此方法。

參數 options:

參數名 類型 必填 描述
viewerId String 觀看者 ID,用於唯一標識使用者,例如使用者手機號碼。
viewerName String 觀看者暱稱。
viewerAvatar String 觀看者頭像 URL。
code String 跑馬燈設定代碼(可選)。

範例:

await plugin.initService({
  viewerId: "user001",
  viewerName: "UniappDemo用户",
  viewerAvatar: "https://example.com/avatar.jpg",
});

setUserInfo(options)

為防止 APP 端被嗅探和反編譯到開發者設定資訊,強烈建議開發者設計自己的加密方式在伺服器端對 userIdAppIDAppSecret進行加密,並透過 https 協定的介面取得後重新解密,再將參數傳遞給 SDK。

設定使用者帳號資訊。在 initService 之後,進入直播間或回放前呼叫。

參數 options:

參數名 類型 必填 描述
appId String 開發者在保利威平台申請的 App ID。
userId String 開發者在保利威平台申請的 User ID。
appSecret String 開發者在保利威平台申請的 App Secret。

範例:

await plugin.setUserInfo({
  appId: "YOUR_APP_ID",
  userId: "YOUR_USER_ID",
  appSecret: "YOUR_APP_SECRET",
});

loginLiveRoom(options)

登入並進入直播房間。

參數 options:

參數名 類型 必填 描述
sceneType Number 場景類型:1 為雲課堂,2 為直播帶貨。
channelId String 頻道的唯一標識 ID。

範例:

await plugin.loginLiveRoom({
  sceneType: 1, // 云课堂场景
  channelId: "YOUR_CHANNEL_ID",
});

loginPlaybackRoom(options)

登入並進入回放房間。

參數 options:

參數名 類型 必填 描述
sceneType Number 場景類型:1 為雲課堂,2 為直播帶貨。
channelId String 頻道的唯一標識 ID。
videoId String 影片的 Vid。
vodType Number 回放類型:0 為單一影片回放,1 為回放列表。

範例:

await plugin.loginPlaybackRoom({
  sceneType: 1,
  channelId: "YOUR_CHANNEL_ID",
  videoId: "YOUR_VIDEO_ID",
  vodType: 0, // 单个视频回放
});

logoutRoomMessage(callback)

註冊一個回呼函式,當使用者退出房間時(目前僅支援 iOS)會觸發。

參數 callback:

參數名 類型 必填 描述
res Function 退出房間後執行的回呼函式。

範例:

plugin.logoutRoomMessage((res) => {
  console.log("已退出房间", res);
});

開播功能,需要整合全功能版本插件,並設定 type 為 LiveScenesHostPlugin

import {
  PLVLiveScenesPluginHelper,
  PluginType,
} from "../../tools/plv-live-scense-plugin-helper.mjs";
const plugin = PLVLiveScenesPluginHelper({
  type: PluginType.LiveScenesHostPlugin,
});

loginStreamer

登入主播端開播

參數 options:

參數名 類型 必填 描述
channelId String 頻道的唯一標識 ID。
password String 頻道登入密碼。
nickname Number 主播名稱。

範例:

plugin.loginStreamer({
  channelId: "YOUR_CHANNEL_ID",
  password: "YOUR_CHANNEL_PASSWORD",
  nickname: "YOUR_NAME",
});

setScreenShareGroup

設定螢幕共享(僅 iOS 需要)

參數 options:

參數名 類型 必填 描述
appGroup String 螢幕共享組標識

範例:

plugin.setScreenShareGroup(YOUR_APP_GROUP);

完整使用流程

一個典型的使用流程如下:

  1. 引入並實例化插件
  2. 呼叫 initService 初始化服務
  3. 呼叫 setUserInfo 設定使用者資訊
  4. 根據需要呼叫 loginLiveRoomloginPlaybackRoom 進入直播或回放
import { PLVLiveScenesPluginHelper } from "./tools/plv-live-scense-plugin-helper.js";

const plugin = PLVLiveScenesPluginHelper();

async function start() {
  try {
    // 1. 初始化服务
    await plugin.initService({
      viewerId: "user001",
      viewerName: "Demo用户",
      viewerAvatar: "https://example.com/avatar.jpg",
    });

    // 2. 设置用户信息
    await plugin.setUserInfo({
      appId: "YOUR_APP_ID",
      userId: "YOUR_USER_ID",
      appSecret: "YOUR_APP_SECRET",
    });

    // 3. 登录直播间
    await plugin.loginLiveRoom({
      sceneType: 1,
      channelId: "YOUR_CHANNEL_ID",
    });

    console.log("登录成功");
  } catch (error) {
    console.error("发生错误:", error);
  }
}

start();

第二種:自行引入原生插件

自行引入原生插件

const playModule = uni.requireNativePlugin("PLV-LiveScenesPlugin-PlayModule");
const configModule = uni.requireNativePlugin(
  "PLV-LiveScenesPlugin-ConfigModule"
);

全功能版則是

var playModule = uni.requireNativePlugin("PLV-LiveUniPlugin-WatchPlayModule")
var configModule = uni.requireNativePlugin("PLV-LiveUniPlugin-WatchConfigModule")

觀看端設定模組 - ConfigModule

ConfigModule 封裝了帳號資訊、使用者資訊、SDK 設定功能。 開發者要播放保利威影片,需先到 保利威官網 註冊帳號,登入帳號後,進入雲直播 - 開發設定 取得 userIdAppIDAppSecret,並將加密得到加密串放到自己的伺服器,再在行動端透過網路取得加密串,app 本地解密,並設定給 setConfig 方法。設定模組資訊如果沒有特殊說明都需要在進入直播間前設定。

1. setViewerInfo

設定直播間使用者資訊。(直播間使用者的屬性在初始化後不允許修改) 方法:setViewerInfo()

範例:

configModule.setViewerInfo({ viewerId:"", viewerName: "", viewerAvatar: "", },
(result) => { })

參數:

名稱 類型 說明
params.viewerId String 對應觀看日誌中的 使用者 ID
params.viewerName String 對應觀看日誌中的 使用者暱稱
params.viewerAvatar String 觀看使用者的頭像
callback function {"isSuccess": 0, @"errMsg": ""} 執行結果的 callback,返回是否成功的狀態和描述
2. setConfig

設定多場景的帳號屬性。為防止 APP 端被嗅探和反編譯到開發者設定資訊,強烈建議開發者設計自己的加密方式在伺服器端對 userIdAppIDAppSecret進行加密,並透過 https 協定的介面取得後重新解密,再將參數傳遞給 SDK。 方法:setConfig()

範例:

configModule.setConfig({
 appId: "",
 userId: "",
 appSecret: ""
}, (result) => {
});

參數:

名稱 類型 說明
params.appId (必需) String polyv 雲直播應用 ID (可在雲直播後台插件)
params.userId(必需) String polyv 雲直播帳號 ID
params.appSecret(必需) String 使用者頭像地址 polyv 雲直播應用密鑰
callback function {"isSuccess": 0, @"errMsg": ""} 執行結果的 callback,返回是否成功的狀態和描述
3. setMarqueeConfig

設定自訂跑馬燈的設定屬性 方法:setMarqueeConfig()

範例

configModule.setMarqueeConfig({
  code: "",
}, (result) => {
})

參數:

名稱 類型 說明
params.code String 跑馬燈 code 參數設定
callback function {"isSuccess": 0, @"errMsg": ""} 執行結果的 callback,返回是否成功的狀態和描述

觀看端播放模組 - PlayConfig

playModule 封裝了雲課堂、直播帶貨的直播和回放功能。

4. showFullScreenButtonOnIPad

是否在 iPad 上顯示全螢幕按鈕(僅在 iPad 雲課堂場景),需要在進入房間前呼叫

方法:showFullScreenButtonOnIPad()

範例:

playModule.showFullScreenButtonOnIPad({show:true});

參數:

名稱 類型 說明
show (必需) Bool(true 顯示全螢幕按鈕,false 顯示)
5. loginLiveRoom

直播登入(雲課堂場景,帶貨直播場景登入)

方法:loginLiveRoom()

範例:

// 直播
playModule.loginLiveRoom(
  1,
  {
    channelId: "",
    liveParam4: "",
    liveParam5: "",
  },
  (result) => {}
);

參數:

名稱 類型 說明
sceneType (必需) Number(1 雲課堂場景, 2 直播帶貨場景) 直播室類型
params.channelId(必需) String 直播的頻道號
params.liveParam4(非必需)
params.liveParam5(非必需)
callback function {"isSuccess": 0, @"errMsg": ""} 執行結果的 callback,返回是否成功的狀態和描述
6. loginPlaybackRoom

登入回放直播間(雲課堂,帶貨直播回放登入)

方法:loginPlaybackRoom()

範例:

playModule.loginPlaybackRoom(
  0,
  {
    channlId: "",
    liveParam4: "",
    liveParam5: "",
    videoId: "",
    vodType: 0,
  },
  (result) => {}
);

參數:

名稱 類型 說明
sceneType (必需) Number(1 雲課堂場景, 2 直播帶貨場景) 直播室類型
params.channelId(必需) String 直播的頻道號
params.liveParam4(非必需)
params.liveParam5(非必需)
params.videoId(必需) String 回放影片 id
params.vodType(必需) Number 0 回放影片 1 回放列表
callback function {"isSuccess": 0, @"errMsg": ""} 執行結果的 callback,返回是否成功的狀態和描述
7. exitRoomCallback (僅 ios)

退出直播間回呼

方法:setExitRoomCallback()

範例:

playModule.setExitRoomCallback((res) => {
  Logger.info("退出房间成功");
  cb && cb(res);
});

主播端設定模組

var liveModule = uni.requireNativePlugin("PLV-LiveUniPlugin-StreamerLiveModule")
var configModule = uni.requireNativePlugin("PLV-LiveUniPlugin-StreamerConfigModule")
1. setAppGroup【僅iOS有效】

螢幕共享帳號設定的 App Group 方法:setAppGroup()

範例:

configModule.setAppGroup({
    appGroup:""
}, (result) => {
})

參數:

名稱 類型 說明
params.appGroup String 帳號設定的 App Group
callback function {"isSuccess": 0, @"errMsg": ""} 執行結果的 callback,返回是否成功的狀態和描述

主播端直播模組 - LiveModule

登入開播推流

方法:loginStreamer()

範例:

playModule.loginStreamer({
    channelId: "",
    password: "",
    nickname: ""
}, (result) => {
});

參數:

名稱 類型 說明
channelId (必需) String 登入頻道號
password (必需) String 登入密碼
nickname (非必需) String 暱稱
callback function {"isSuccess": 0, @"errMsg": ""} 執行結果的 callback,返回是否成功的狀態和描述
联系客服,在线咨询