更新记录

0.2.6(2024-01-10)

Add

  • 【Android】【iOS】升级多场景SDK到1.16.2;

0.2.5(2023-11-12)

Fixed

  • 【Android】修复全屏打赏时崩溃的问题;

0.2.4(2023-03-23)

Fixed

  • 【iOS】修复云课堂场景、直播带货场景,设置跑马灯code参数不生效;
  • 【Android】修复登录回放时设置点播列表参数无效;
查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 11.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:12 - 16

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


Polyv多场景uni 插件

简介

该插件封装了保利威 Android 与 iOS 原生多场景 Demo SDK。使用本模块可以轻松把保利威 Android 与 iOS 多场景功能集成到自己的 App 中。目前主要集成了云课堂场景和直播带货场景。

  • 云课堂场景:

    实现保利威视频教学直播、ppt 在线演示同步播放、教学连麦、在线聊天功能,以及直播回放功能。

  • 直播带货场景:

    实现视频直播、在线聊天、打赏、商品等功能,非常适合直播带货的应用场景。

注意事项

  • 请务必通过 ConfigModule 的 setViewerInfo 设置观众ID,观众ID是后台区分用户的唯一标识别。

  • 如果云打包遇到问题可以移步到离线工程插件工程,进行离线打包。

  • Android端需要同时集成Polyv播放器插件 Polyv弹幕库插件-Android,如果Polyv播放器插件-Android 和VideoPlayer同时集成,就要去掉弹幕库

    .方案一
    ├── Polyv多场景插件
    ├── Polyv弹幕库插件-Android
    └── Polyv播放器插件-Android
    .方案二
    ├── Polyv多场景插件
    ├── VideoPlayer插件
    └── Polyv播放器插件-Android
  • iOS 端自0.1.0+需要同时集成 Polyv UTDID 插件-iOS。如果本插件同时集成了 支付模块的支付宝支付 则不需要集成 [Polyv UTDID 插件-iOS] 插件

  • iOS 端自0.2.1+需要同时集成Polyv播放器插件

  • iOS 端使用到了后台音频播放和画中画的功能,因此打包时需要在 manifest.json 中进行权限配置,可通过 manifest.json 中最下面的源码视图添加权限配置

    {  
    "app-plus" : {  
          /* 应用发布信息 */  
          "distribute" : {  
              /* ios打包配置 */  
              "ios" : {  
                  "UIBackgroundModes" : [ "audio"] // 数组,支持多个  
              },  
          }  
      }  
    }

    详细可以参考官方文档:https://nativesupport.dcloud.net.cn/NativePlugin/course/package?id=background-modes 和 https://ask.dcloud.net.cn/article/36430

  • 为防止APP端被嗅探和反编译到开发者配置信息,强烈建议开发者设计自己的加密方式在服务端对 userIdAppIDAppSecret进行加密,并通过https协议的接口获取后重新解密,再将参数传递给SDK。

快速使用

1. 保利威视频云平台注册账号,并开通相关服务

2. 下载示例项目uniapp-livescenes-demo

3. 【仅限测试!】使用保利威视频云平台配置的的appId、userId、appSecret替换项目中的对应配置,实际场景请务必进行加密处理。

4. 集成【Polyv多场景uni 插件】,打包成对应平台的自定义基座体验项目

5. API说明

引入插件

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

配置模块 - 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: ""
}, (result) => {
});

参数:

名称 类型 说明
sceneType (必需) Number(1云课堂场景, 2直播带货场景) 直播室类型
params.channelId(必需) String 直播的频道号
callback function {"isSuccess": 0, @"errMsg": ""} 执行结果的callback,返回是否成功的状态和描述
6. loginPlaybackRoom

登录回放直播间(云课堂,带货直播回放登录)

方法:loginPlaybackRoom()

示例:

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

参数:

名称 类型 说明
sceneType (必需) Number(1云课堂场景, 2直播带货场景) 直播室类型
params.channelId(必需) String 直播的频道号
params.videoId(必需) String 回放视频id
params.vodType(必需) Number 0回放视频 1回放列表
callback function {"isSuccess": 0, @"errMsg": ""} 执行结果的callback,返回是否成功的状态和描述

隐私、权限声明

1. 本插件需要申请的系统权限列表:

iOS插件需要申请的权限: NSPhotoLibraryUsageDescription, NSPhotoLibraryAddUsageDescription, NSCameraUsageDescription, NSLocalNetworkUsageDescription, NSMicrophoneUsageDescription android插件需要申请的权限: "",//网络访问,获取网络数据 "", //应用判断Wifi状态,连接至直播数据

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

本插件采集用户ID、视频ID、播放时长等直播视频播放的基础数据,发送服务器地址为:https://prtas.videocc.net/。 采集的数据用于向客户提供观众的播放情况统计。 隐私政策:https://s2.videocc.net/app-simple-pages/privacy-policy/index.html

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

请参考开源项目地址的开源协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问