上传多个视频的预览图URL

接口URL

http://api.polyv.net/v2/video/{userid}/uploadCoverImageUrl

接口说明

将url地址对应的图片更换到视频预览图上,图片资源不支持https的协议

支持格式

JSON

请求方式

POST

请求参数

参数名 必选 类型及范围 说明
ptime true string 当前时间的毫秒级时间戳(13位),30分钟内有效
userid true string 用户id(拼接在url,无需另外传参数)
sign true string 签名
vids false string 多个视频id用逗号隔开
cataids false string 多个分类id用逗号隔开
fileUrl true string 图片url地址

参数使用:

当传了vids参数,以vids为准,当vids不传,以cataids为准,两个参数不能同时为空。

注意事项

所有有值的参数,按照字母排序方式以key=value&key=value的格式串起来,最后拼上secretkey,以SHA-1方式加密并全部大写化。(注意,当参数没有传递,或者传递了空值,sign不需要将此参数计算进去)

例如:api传递了ptime,vid。ptime为1,vid为test1,userid对应用户的secretkey为test2
则sign的值为:ptime=1&vid=test1test2经过SHA-1加密后大写化为: C2B1558D697EA3AF4ED2FC90152751860C1E2163。

返回错误结果JSON示例

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

返回正确结果JSON示例

{
  "code": 200,
  "status": "success",
  "message": "success",
  "data": "上传成功."
}

字段说明

字段 说明
code 返回码
status 返回状态
message 返回信息
data 操作结果

响应代码与响应信息对应

code message 说明
400 sign can not be empty.
400 ptime is too old.
400 ptime is illegal. ptime超出当前时间3分钟
400 Could not find user by userid.
400 the sign is not right.
412 vids不能为空.
413 上传失败. 上传到服务器出错
500 上传失败,请查看日志. 后台抛异常
200 success. 上传成功

php上传示例:

<?php
header("Content-type: text/html; charset=utf-8");
$userid="3828390191";
$vids="382839019131be68715e9455f8d0971a_3";
$fileUrl="http://test.jpg";
$ptime=time()*1000;//13位
$secretkey="tIQp4ATe9Z";
$str="fileUrl=".$fileUrl."&ptime=".$ptime."&vids=".$vids.$secretkey;
//echo $str.'';
$hash=strtoupper(sha1($str));
//echo $hash.'';
$url="http://api.polyv.net/v2/video/{$userid}/uploadCoverImageUrl";
$post_data = array (
    "vids" => $vids,
    "fileUrl" => $fileUrl,
    "ptime" => $ptime,
    "sign" => $hash,
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// post数据
curl_setopt($ch, CURLOPT_POST, 1);
// post的变量
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);
//打印获得的数据
print_r($output);
?>

签名规则:

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

1、请求参数为

"ptime" = "1493188350000"
"vid" = "3828390191de2b3fd3467c36187aac08_3"

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

"ptime" = "1493188350000"
"vid" = "3828390191de2b3fd3467c36187aac08_3"

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

ptime=1493188350000&vid=3828390191de2b3fd3467c36187aac08_3tIQp4ATe9Z

4、生成签名sign

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

上传多个视频的预览图

点击这里查看旧版

接口URL

http://api.polyv.net/v2/video/{userid}/uploadCoverImage

接口说明

上传一张本地图片作为多个视频或多个分类的预览图

支持格式

JSON

请求方式

POST

请求参数

参数名 必选 类型及范围 说明
ptime true string 当前时间的毫秒级时间戳(13位),30分钟内有效
userid true string 用户id(拼接在url,无需另外传参数)
sign true string 签名
vids false string 多个视频id用逗号隔开
cataids false string 多个分类id用逗号隔开
image true file 图片

参数使用:

当传了vids参数,以vids为准,当vids不传,以cataids为准,两个参数不能同时为空。

注意事项

所有有值的参数,按照字母排序方式以key=value&key=value的格式串起来,最后拼上secretkey,以SHA-1方式加密并全部大写化。(注意,当参数没有传递,或者传递了空值,sign不需要将此参数计算进去,图片参数也无需算入sign)

例如:api传递了ptime,vid。ptime为1,vid为test1,userid对应用户的secretkey为test2
则sign的值为:ptime=1&vid=test1test2经过SHA-1加密后大写化为: C2B1558D697EA3AF4ED2FC90152751860C1E2163。

返回错误结果JSON示例

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

返回正确结果JSON示例

{
  "code": 200,
  "status": "success",
  "message": "success",
  "data": "上传成功."
}

字段说明

字段 说明
code 返回码
status 返回状态
message 返回信息
data 操作结果

响应代码与响应信息对应

code message 说明
400 sign can not be empty.
400 ptime is too old.
400 ptime is illegal. ptime超出当前时间3分钟
400 Could not find user by userid.
400 the sign is not right.
410 图片不能为空且图片大小不能为0.
411 图片必须为gif,jpg,bmp,png格式.
412 vids不能为空.
413 上传失败. 上传到服务器出错
500 上传失败,请查看日志. 后台抛异常
200 success. 上传成功

表单上传示例:

<form action="http://api.polyv.net/v2/video/3828390191/uploadCoverImage" method="post" enctype='multipart/form-data' >
    vids:<input type="input" id="vids" name="vids" value="test1,test2">
    <!-- 当前毫秒级别的时间戳 -->
    ptime:<input type="input" id="ptime" name="ptime" value="">
    <!-- sign = hex_sha1("cataids="+cataids+"&ptime="+ptime+"&vids="+vids+secretkey).toUpperCase(); 具体规则请看下面的规则 -->
    sign<input type="input" name="sign" id="sign" value="">
    cataids:<input type="input" name="cataids" id="cataids" value="1514863632700">
    文件:<input type="file" name="image" id="image" /><br>
    <input type="submit" value="点击上传"/>
</form>

签名规则:

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

1、请求参数为

"ptime" = "1493188350000"
"vid" = "3828390191de2b3fd3467c36187aac08_3"

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

"ptime" = "1493188350000"
"vid" = "3828390191de2b3fd3467c36187aac08_3"

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

ptime=1493188350000&vid=3828390191de2b3fd3467c36187aac08_3tIQp4ATe9Z

4、生成签名sign

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

远程批量上传视频

接口URL

http://api.polyv.net/v2/video/grab/{userid}/upload/multi

接口说明

批量上传远程视频(异步上传)

支持格式

JSON

请求方式

POST

请求数限制

TRUE

请求参数

参数名 必选 类型及范围 说明
ptime true string 当前13位毫秒级时间戳,3分钟内有效
fileUrl true string 远程文件的http连接(带http://),多个地址间使用英文逗号隔开
title true string 标题,多个标题使用逗号隔开,**标题数量必须和文件地址数量一致 **
cataid false long 设定上传视频的分类,分类的id可以在“视频管理”——“内容分类”中获取,如下图所示。cataid为catatree的最后一个long型的整数,catatree由cataid组成。当cataid值为1时,表示用户上传空间的根目录。
sign true string 签名

JSON示例

{
    code: 200,
    status: "success",
    message: "success",
    data: "成功!"
}

返回错误json

// 文件url不能为空
{
  "code":400,
  "status":"error",
  "message":"FileUrl is null!",
  "data":""
}
// 文件标题不能为空
{
  "code":400,
  "status":"error",
  "message":"Title is null!",
  "data":""
}
// 文件的url个数必须和title个数相同
{
  "code":400,
  "status":"error",
  "message":"FileUrl and title are inconsistent!",
  "data":""
}

PHP示例代码

<?php
  $userid="8205ac89d3";
  $secretkey = "kXmHMLeX6M";
  $ptime=time()*1000;
  $fileUrl="http://a.mp4,http://b.mp4";
  $title="aaa,bbb";
  $cataid="131313";
  $str="cataid=$cataid&fileUrl=$fileUrl&ptime=$ptime&title=$title".$secretkey;
  $sign=strtoupper(sha1($str));
  $url="http://api.polyv.net/v2/video/grab/$userid/upload/multi?cataid=$cataid&fileUrl=$fileUrl&ptime=$ptime&title=$title&sign=$sign";
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "POST");
  $output = curl_exec($ch);
  curl_close($ch);
  print_r($output);
?>

签名规则:

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

1、请求参数为

  "cataid"="131313";
  "fileUrl"="http://a.mp4,http://b.mp4";
  "title"="aaa,bbb";
  "ptime"=1527228607000;

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

  "cataid"="131313";
  "fileUrl"="http://a.mp4,http://b.mp4";
  "ptime"=1527228607000;
  "title"="aaa,bbb";

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

cataid=131313&fileUrl=http://a.mp4,http://b.mp4&ptime=1527228607000&title=aaa,bbbkXmHMLeX6M

4、生成签名sign
生成40位大写SHA1值

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

分页获取视频同步列表

接口URL

http://api.polyv.net/v2/video/grab/{userid}/list

接口说明

分页获取抓取任务列表

支持格式

JSON

请求方式

GET

请求数限制

TRUE

请求参数

参数名 必选 类型及范围 说明
ptime true string 当前13位毫秒级时间戳,3分钟内有效
sign true string 签名,40位大写的sha1值
page true int 页数,默认为1
pageSize true int 每页数目,默认为10

JSON示例

{
code: 200,
status: "success",
message: "",
data: {
pageNumber: 1,
totalItems: 1,
contents: [
{
taskid: "hHepZ2SjlE",
userid: "8205ac89d3",
filename: null,
originalname: "111.csv",
filesize: null,
filepath: null,
fileurl: "http://grab.polyv.net/files/csv/1522286666296.csv",
classifyid: "1",
classifyname: "视频分类(根目录)",
seccesscount: 2,
totalcount: 2,
failcount: 0,
status: "Y",
endtime: 1522286706000,
createtime: 1522286672000
}
],
startRow: 1,
endRow: 1,
firstPage: true,
lastPage: true,
nextPageNumber: 1,
prePageNumber: 1,
totalPages: 1,
limit: 1,
offset: 0
}
}

返回错误json

{
  "code":400,
  "status":"error",
  "message":"TaskId is null!",
  "data":""
}

字段说明

字段 说明
code 返回码
status 返回状态
message 返回信息
data 响应结果集
pageNumber 当前的页数
totalItems 总的条数
contents 查询的结果列表
taskid 抓取任务对应的ID
userid 点播用户的ID
originalname 上传的抓取任务csv文件的标题
fileurl 抓取任务的csv文件地址
seccesscount 抓取成功的数量
totalcount 此任务内总抓取数
failcount 抓取失败的数量
status 抓取任务完成状态
endtime 任务完成时间
createtime 任务创建时间
firstPage 是否为第一页,值为:true/false
lastPage 是否为最后一页,值为:true/false
nextPageNumber 下一页编号
prePageNumber 上一页编号
totalPages 总页数
startRow 当前页第一条记录在总抓取记录中的位置
endRow 当前页最后一条记录在总抓取记录中的位置
limit 当前页抓取任务记录个数

PHP示例代码

<?php
  $userid="8205ac89d3";
  $secretkey = "kXmHMLeX6M";
  $ptime=time()*1000;
  $page=1;
  $str= "page=$page&ptime=$ptime".$secretkey;
  $sign=strtoupper(sha1($str));
  $url="http://api.polyv.net/v2/video/grab/$userid/list?ptime=$ptime&sign=$sign&page=$page";
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "GET");
  $output = curl_exec($ch);
  curl_close($ch);
  print_r($output);
?>

签名规则:

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

1、请求参数为

  "page" = 1;
  "ptime"=1527231353000;

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

  "page" = 1;
  "ptime"=1527231353000;

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

page=1&ptime=1527231353000kXmHMLeX6M

4、生成签名sign
生成40位大写SHA1值

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

移动视频分类接口

接口URL

http://api.polyv.net/v2/cata/{userid}/change

接口说明

移动视频分类

支持格式

JSON

请求方式

POST

请求数限制

TRUE

请求参数

参数名 必选 类型及范围 说明
userid true string POLYV用户ID
cataid true string 需要移动的目录分类id, (id=1,表示默认分类)
destCataid true string 移动到的目录分类id, (id=1,表示默认分类)
ptime true string 当前时间的毫秒级时间戳(13位),3分钟内有效
sign true string 签名,为40位大写的SHA1值

注意事项

sign的拼接规则是:cataid=参数&destCataid=参数&ptime=参数secretkey,再经过SHA-1加密并大写化。
这里要注意,如果这些参数的值为空串,则sign里就不用拼上这些变量

PHP示例代码

<?php
header("Content-type: text/html; charset=utf-8");
$userid="XXXXXXXX"; //用户id
$ptime= time()*1000;  //获取当前时间戳
$secretkey = "XXXXXXXX"; //用户对应的secretkey
$cataid = "XXXXXXXXX"; //分类id
$destCataid = "XXXXXXXXX"; //移动到的分类id
$str="cataid=".$cataid."&ptime=".$ptime."&userid=".$userid.$secretkey;
$sign = strtoupper(sha1($str));
$url="http://api.polyv.net/v2/cata/$userid/change?destCataid=$destCataid&cataid=$cataid&sign=$sign&ptime=$ptime";
$ch = curl_init() or die ( curl_error() );
curl_setopt( $ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 360);
$response = curl_exec ( $ch );
curl_close ( $ch );
echo $response;
?>

返回正确结果JSON示例

{
  "code": 200,
  "status": "success",
  "message": "success",
  "data": true
}

返回错误结果JSON示例

{
  "code": 400,
  "status": "error",
  "message": "ptime is too old.",
  "data": ""
}
{
  "code": 400,
  "status": "error",
  "message": "cataid为空.",
  "data": ""
}
{
  "code": 402,
  "status": "error",
  "message": "cataid格式出错.",
  "data": ""
}
{
  "code": 402,
  "status": "error",
  "message": "两个cataid不能相同.",
  "data": ""
}
{
  "code": 402,
  "status": "error",
  "message": "不能移动到自己的父亲节点.",
  "data": ""
}

字段说明

字段 说明
code 返回码
status 返回状态
message 返回信息
data 返回的内容
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

点播观看小程序

开发前准备

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

开始开发

1.获取视频播放地址

index.js

import polyv from '../../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(vidObj);
  }
}
选项说明

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 观众昵称

sid

类型:String
说明:POLYV后台观看日志中自定义ID

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(vidObj);
  }

3.播放日志发送

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

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

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

4.销毁播放日志定时器

onUnload: function () {
  polyv.destroy();
}

更新说明

  • 6.7.3微信新版本下,非加密视频播放失败问题已修复兼容 (2018-10-10)

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

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

移动端视频的小程序加密

1.概述

  移动端视频的小程序加密播放设置开启后,通过下文设置步骤,视频播放请求m3u8可以在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 下载(Git,建议)

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>

默认小屏播放(WKWebView)
加载网页后网页里有播放器,但是iOS11上的播放默认是全屏播放,没有办法小屏播放,这里我们就要进行下设置了

 //配置信息
WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
//设置为YES即可
config.allowsInlineMediaPlayback = YES;
//在初始化时讲配置信息传入
WKWebView *mWebView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth, ScreenHeight - TopFullHeight) configuration:config];

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

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

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

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

PlaySafe®视频版权保护体系

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

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