点播观看小程序

开发前准备

1.小程序微信开发者后台设置-开发设置-服务器域名中配置 [request合法域名]
- router.polyv.net
- hls.videocc.net
- prtas.videocc.net

开始开发

1.获取视频播放地址

index.js

const polyv = require('../../utils/polyv.js');
Page({
  ...
  onReady: function () {
    //获取视频播放地址
    let vid = "e8888b74d1bd0f19e821d6185279564a_e";
    let vidObj = {
        vid: vid,
        callback: function(videoInfo){
            that.setData({
              videoSrc: videoInfo.src[0]
            });
        }
    };
    polyv.getVideo(obj);
  }
}
选项说明

vid

类型:String
说明:视频Id

callback(videoInfo)

类型:Function
说明:获取视频信息成功时触发

参数:videoInfo
参数类型:object
参数说明:

参数 参数说明
src 数组:多个码率视频播放地址,获取成功后取其中一种码率设置为video组件的src
poster 视频封面
title 视频标题
teaser_url 视频片头,以返回链接后缀判断图片/视频类型
duration 视频总时长
timeoutflow 只返回该属性并为true,表示套餐过期
outflow 只返回该属性并为true,表示套餐流量不足

params

类型:object
说明:播放日志自定义参数

参数值可选 说明
param1 用户ID
param2 昵称

ts

类型:String
说明:web授权加密时间戳,使用web授权视频播放时添加

sign

类型:String
说明:web授权加密验证sign,使用web授权视频播放时添加

2.获取视频预览播放地址

onReady: function () {
    //获取视频预览播放地址
    let vid = "e8888b74d1bd0f19e821d6185279564a_e";
    let vidObj = {
        vid: vid,
        callback: function(videoInfo){
            that.setData({
              videoSrc: videoInfo.src[0]
            });
        }
    };
    polyv.getPreviewVideo(obj);
  }

3.播放日志

//需要绑定video组件bindtimeupdate时间并调用polyv.timeUpdate
<video id="polyvVideo" class="vp-v" src="{{videoSrc}}" bindtimeupdate="timeUpdate"></video>

timeUpdate: function (e) {
  polyv.timeUpdate(e);
}

ps:请留意参数e为必须项

小程序点播SDK下载 (点击下载咨询

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

移动端视频的小程序加密

1.概述

  移动端视频的小程序加密播放设置开启后,通过下文设置步骤,视频播放请求m3u8时带上正确的token、iswxa参数可以在web浏览器、APP、小程序内正常播放
  POLYV云平台接收到参数后会对token、iswxa参数进行校验。若校验通过,返回正确的解密密钥key文件链接给客户端。反之,非法访问key,则会响应403错误状态。不允许播放。

2.如何开启

【POLYV后台】—— 【设置】—— 【加密设置】进行如下设置:

3.快速开始

参考小程序播放sdk下载页面调用基础播放器后,需额外添加小程序授权播放wxApp参数,如下图:

参数解析:

参数名 说明 是否必填
wxAppUrl 服务端php示例url
isWx 判断是否微信授权
wxUserId 小程序用户id,可以是小程序openid
expires 请求token视频播放有效时间

ps:请注意修改示例php中$secretkey、$uid(可在后台---设置---API接口窗口中查阅)变量为当前播放视频账号正确的数值。

4."小程序授权"过程原理

小程序播放视频m3u8Url时需要带上从服务器校验获取正确的token、iswxa参数,才能正常访问key来播放视频。

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

批量获取答题日志

接口URL

http://api.polyv.net/v2/video/{userid}/video-exam-log

接口说明

根据指定vid和时间区间查询该时间区域内对应视频下的问答日志,默认每页显示20条记录

支持格式

JSON

请求方式

GET

请求数限制

TRUE

请求参数

参数名 必选 类型及范围 说明
userid true string POLYV用户ID
ptime true string 当前时间的毫秒级时间戳(13位),3分钟内有效
sign true string 签名,为40位大写的SHA1值
vids true string 对应视频的vid,如果是多个视频,将每个vid用英文逗号隔开
pageNum false string 当前页数,默认为1
start false string 查询的开始日期,格式 YYYY-MM-DD
end false string 查询的结束日期,格式 YYYY-MM-DD

签名规则

将所有非空的请求参数按照参数名字典序排列,连接参数名与参数值,并在尾部加上secretkey,生成40位大写SHA1值,作为sign。 以下是示例过程:

1、请求参数为

"vids" = "vid1,vid2"
"start" = "2012-02-03"
"end" = "2012-09-05"
"pageNum" = "1"
"ptime" = "1493370776000"

2、将请求参数按照参数名字典顺序排列

"end" = "2012-09-05"
"pageNum" = "1"
"ptime" = "1493370776000"
"start" = "2012-02-03"
"vids" = "vid1,vid2"

3、连接字符串
连接参数名与参数值,并在尾部加上secretkey(secretkey的值为3OmoLbTlHu),如下:

end=2012-09-05&pageNum=1&ptime=1522809252890&start=2012-02-03&vids=vid1,vid23OmoLbTlHu

4、生成签名sign

C6B9BBCF53DCD14F503795A952DCC0ECAFC1AACA

返回正确结果JSON示例

{
  "code": 200,
  "status": "success",
  "message": "success",
  "data": [
    {data: [
        {
        logid: 27595105,
        examId: "161d7dda0e4",
        userid: "8205ac89d3",
        videoPoolId: "8205ac89d31c8c74e462548a2edd7dff_8",
        question: "test(2)",
        answer: "["1"]",
        isCorrect: 0,
        playId: "1519745038760X1487381",
        ipAddress: "61.144.145.7",
        province: "广东省",
        isp: "电信",
        operatingSystem: "Windows 7",
        browser: "Chrome",
        dateAdded: 1519745103000
        }
    ]

返回错误结果JSON示例

{
  "code": 400,
  "status": "error",
  "message": "ptime is too old.",
  "data": ""
}

字段说明

字段 说明
code 返回码
status 返回状态
message 返回信息
data 分类下的视频大小
logid 此条日志的ID
examId 日志所属的问答的ID
userId 用户ID
videoPoolId 问答所属的视频ID
question 问答标题
answer 问答的正确答案
isCorrect 是否回答正确
playerId 播放器ID
ipAddress IP地址
province 省份
isp ISP运营商
operatingSystem 操作系统
browser 浏览器
dateAdded 回答该问题的日期(时间戳形式)

php请求示例

<?php
$userid="efbb4ae8ac";
$vids="8205ac89d31c8c74e462548a2edd7dff_8";//查询月份,格式为yyyyMM
$ptime = time()*1000;
$pageNum=1;
$start="2012-02-01";
$end="2013-03-01";
$secrectKey = "hbjCVBhnth";
$sign=strtoupper(sha1("end=$end&pageNum=$pageNum&ptime=$ptime&start=$start&vids=$vids".$secrectKey));
$url="http://api.polyv.net/v2/video/$userid/video-exam-log?end=$end&ptime=$ptime&sign=$sign&pageNum=$pageNum&start=$start&vids=$vids";
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$output = curl_exec($ch);
curl_close($ch);
print_r($output);
?>

响应代码与响应信息对应

code message 说明
400 ptime is illegal. 时间戳格式问题,或者时间戳超过当前时间3分钟
400 请先选择目标视频. vids为空
400 sign can not be empty. 加密串为空
400 ptime is too old. 时间戳过期(3分钟过期)
400 the sign is not right. 加密串错误
400 日期格式错误. start或end格式错误
500 查询出错. 后台发生错误异常
200 success 查询成功
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

WebView常见问题

一、简介

  目前部分网页使用WebView控件来播放Polyv点播视频或直播视频时,会产生以下问题,在此提供demo供参考方便快速解决问题。

   安卓demo下载         iOS demo下载

  安卓webview demo描述
 - demo中实现了点击全屏按钮功能(ps:demo中虽然实现了全屏,但是从竖屏切换到横屏全屏,或者从横屏切换到竖屏全屏,需要开发者自己实现)

  IOS webview demo描述
 - demo中分别演示使用UIWebview、WKWebview

二、FAQ

1. webview 引用直播观看页打开白屏

不可以随意劫持Polyv请求的cookie信息,可能导致播放页面无法正常跳转,出现白屏现象。

2. 播放器区域白屏

由于运营商劫持的可能性,建议引用https的页面地址解决。

3. iOS建议使用 WKWebView

视频在h5页面内播放属性是 inline playback, UIWebView 默认开,WKWebView 默认关。
UIWebView 在 iOS 11.3 上设置 inline playback 无效,iOS 11.0.3 上可以,所以不建议继续使用 UIWebView。

苹果官方建议:
从iOS 8.0和OS X 10.10开始,使用WKWebView将Web内容添加到您的应用程序。不要使用UIWebView或WebView。
Starting in iOS 8.0 and OS X 10.10, use WKWebView to add web content to your app. Do not use UIWebView or WebView.

4. ios配置

iOS 需要以下配置,设置 info.plist NSAppTransportSecurity 字段,允许非HTTPS连接访问。

加入 NSAllowsArbitraryLoadsInWebContent 键,允许任意web页面加载,或设置 NSAllowsArbitraryLoadsYES 来禁用ATS。

测试发现:使用NSAllowsArbitraryLoadsInWebContent在 iOS 10.3 上视频可能无法播放,所以建议直接关闭ATS。

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

5.Android 虚拟按键适配动态调整布局

如下图华为mate8机型为例,部分webview页面底部内容被虚拟按键遮挡问题,需要处理Android调整webview适配底部返回键等虚拟键盘。

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

PlaySafe®视频版权保护体系(视频)

PlaySafe®视频版权保护体系

保利威视PlaySafe®视频版权保护体系,防下载,防盗链,防录屏,防篡改,确保在线视频版权安全。
1、防下载
PlaySafe®采用分布式编码技术,将视频物理切片,每一片视频采用不同的加密算法,结合POLYV独立研制的密码本,对关键数据进行混淆。
这样,经过加密的视频,即使被下载下来,也无法播放,确保全终端视频安全。
2、防盗链
采用业界领先的OVP防盗链技术,设置视频只允许某些域名下才能正常播放,其他域名不能播放。如果被盗链,打开视频的时候就会显示:“该站点未被授权播放该视频”。
3、防录屏
常见的录屏方式有三种:浏览器录制、桌面录制、摄像机录制。
针对以上的录屏方式,保利威视推出浏览器防录屏扫描技术,跑马灯播放器、视频水印、问答播放器四大关键技术,有效防止非法录屏。
4、防篡改
传输链路支持ATS/HTTPS加密协议。从服务器端到分发端,从分发端到观看端,均满足数据安全要求。避免视频在传输过程中被截取或被篡改。
除此之外,优化Apple HLS Encryption 视频保护机制,移动端也一样固若金汤。

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

H5播放器倍速播放(视频)

H5播放器倍速播放

1.倍速功能可以让视频加速或者减速播放;
2.在PC端,HTML5播放器能轻松实现倍速播放功能,您可以将视频的播放速度设定为0.5倍,1倍(正常速),1.2倍,1.5倍,2倍。移动端要使用倍速功能,则是通过集成SDK来实现;
3.H5播放器的使用方法有两种,第一种,是直接通过一段JS代码实现;第二种是通过在点播后台,视频设置里直接勾选优先使用H5播放器,然后使用多终端代码;
4.如果是加密视频,则需要加上'playsafe':token 参数,否则会出现点击播放没有反应的情况;
5.目前H5播放器需要IE11或以上的浏览器才能完美兼容。

更多H5播放器帮助请点击帮助文档:http://dev.polyv.net/?p=7377

 

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

视频合并功能(视频)

视频说明

1.使用视频合并功能,可以把多个不同的视频,合并成一个新的视频;
2.选择需要进行合并的视频,然后点击视频剪辑,在下拉菜单里选择视频合并;
3.目前视频合并功能只支持最多三个视频的合并;
4.视频的合并顺序是由上到下进行合并的,我们可以通过拖拽视频来改变合并的顺序;
5.可以填写新的视频名称,并选择分类,选择分类后,如果进行了分类设置,那么分类设置也会应用到新合并的视频(例如设置视频加密、水印、课件优化等)。

 

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

点播数据统计介绍(视频)

数据统计

点播数据统计,可以对账号信息、用户观看行为、用户情况进行统计分析,为您提供全方位的营销数据支持。
账号信息:可以详细查询账号空间和流量的使用情况,数据查询详细到每一天。
视频功能列表:通过实时数据、播放量、播放排行榜、观看热点、观看日志等进行统计分析,可以统计实时在线的人数、分析用户最关注的视频,关注点在哪个时间段等。
观众栏:可以查看PC端和移动端的观看人数、观众所在的地理位置分布、使用的终端环境等。
最重要的是,这些数据都有API接口,可以直接加入您自己的用户系统中!

 

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

点播快速入门

您只需要花几分钟的时间,就能快速掌握POLYV点播,迅速实现视频的上传、管理和发布,还等什么,赶紧来体验一下吧。

云点播快速入门

时长:1:56

视频的上传与发布

时长:1:29

视频分类管理

时长:2:18

点播进阶教程

您现在可以观看我们精心准备的进阶视频教程了,通过学习,您会发现点播视频可以更加安全,可以更加有趣。
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

自定义音频播放器

1 概述

根据polyv播放器现有参数、接口、事件。实现pc/移动端兼容的音频播放器,可自定义播放器样式。

1.1 特性

基础功能

  • [✓]支持IOS、Android主流厂商及机型
  • [✓]支持IE10+, chrome等主流浏览器
  • [✓]支持多种视频编码格式(h264, mpeg4)
  • [✓]支持主流的视音频格式
  • [✓]播放控制(播放、暂停,拖拽进度调整)

2 开发准备

音频播放器使用audio标签进行播放,优点:节省流量。因此需要准备音频文件。保利威视后台生成音频文件有以下两种方法:

  • (1)音频源文件上传,如mp3文件,具体上传步骤可参考源文件播放
  • (2)后台开启生成音频文件,具体生成音频文件可参考音频播放器使用

3 快速开始

4 创建自定义音频播放器

4.1 引入相关资源

打开index.html

(1)在<head>中引入polyvAudio.css

<link href="polyvAudio.css" rel="stylesheet">

(2)引入相关js文件

<script src="jquery3.3.1.min.js"></script>
<script src="//player.polyv.net/script/polyvplayer.min.js"></script>
<script src="polyvAudio.js"></script>

(3)设置dom节点

<div class="wrap polyvAudio">
        <div id="audio_area" class="db audio_area">
            <div class="audio_area_left">
                <div id="audio_play_area" class="audio_play_area">
                    <i class="icon_audio_playing"></i>
                    <i class="icon_audio_pausing"></i>
                </div>
            </div>
            <div id="audio_area_right" class="audio_area_right">
                <div class="audio_info">
                    <div class="db audio_info_area">
                        <strong class="db audio_title">保利威视宣传音频</strong>
                    </div>
                    <div id="audio_slide_bar" class="audio_slide_bar">
                        <div id="audio_progress" class="progress_bar" style="width: 0%;"></div>
                        <div id="audio_progress_bg" class="progress_bar_bg"></div>
                        <div id="audio_progress_dot" class="audio_progress_dot"></div>
                    </div>
                    <div class="audio_time tips_global">
                        <span id="audio_curren_time" class="audio_current">00:00</span>
                        <span class="audio_separator">/</span>
                        <span id="audio_length" class="audio_length">00:00</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div id="audio" class="audio_player"></div>

(4)嵌入播放器并设置参数调用音频模式
如2开发准备说明,可以通过以下两种方式设置对应参数嵌入播放器。
- 示例一

var player = polyvObject('#audio').videoPlayer({
    width: '1',
    height: '1',
    vid: 'accb9f485b10c10478651a4e61d49425_a',//源文件播放
    useAudio: true,
    ban_ui: true,
    hidePlayBtn: true,
    forceHTML5: true
});
  • 示例二
var player = polyvObject('#audio').videoPlayer({
    width: '1',
    height: '1',
    vid: 'accb9f485b180ec89afd18f9c8756bc2_a',//音频播放器使用
    priorityMode: 'audio',
    ban_ui: true,
    hidePlayBtn: true,
    forceHTML5: true
});

(5)关联自定义控制栏,并传入播放器实例

var polyvAudioObj = $('.polyvAudio').polyvAudio({
    player: player
});
4.2 播放控制

播放控制包括:暂停、继续、停止、获取当前播放时间、播放状态触发等,相关函数如下:

选项

useAudio

* 类型:Boolean
* 说明:是否使用音频模式

ban_ui

* 类型:Boolean
* 说明:是否隐藏播放器皮肤

hidePlayBtn

* 类型:Boolean
* 说明:是否隐藏播放器大播放按钮

forceHTML5

* 类型:Boolean
* 说明:是否使用H5播放器
* 注意: 使用H5播放器可防止部分浏览器屏蔽FLASH播放器的情况

接口

j2s_resumeVideo

* 说明:执行播放器播放动作

j2s_pauseVideo

* 说明:执行播放器暂停动作

j2s_getVideo

* 说明:获取播放器video标签实例
* 返回值说明:返回video节点
* 获取视频结束播放状态示例:player.j2s_getVideo().ended

j2s_getDuration

* 说明:获取当前播放视频总时长
* 返回值:Number(单位:秒)
* 注意: 需要在s2j_onPlayStart事件触发后再执行,否则返回0

j2s_seekVideo

* 说明:控制播放器SEEK功能
* 传参说明:秒数
* 使用示例:player.j2s_getVideo(50)

j2s_getCurrentTime

* 说明:获取视频播放当前时间
* 返回值:秒数

事件

s2j_onPlayStart

* 说明:播放开始时触发,播放过程中只触发一次

s2j_onVideoPlay

* 说明:播放开始时触发,播放过程中触发多次

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...