视频防盗:授权播放+跑马灯
1、首先需要开发者开发一个能输出以下示例中json参数的http协议接口,然后把接口URL配置到POLYV后台(如下图)。

2、JSON示例(授权播放只需要输出status、username、sign这3个参数给POLYV验证即可,若需要在PC端的POLYV Flash播放器中显示跑马灯,还需要输出示例中其他跑马灯相关的参数):
PC端请求用户接口时的返回示例:
{"status":1,
"username":"test",
"sign":"a9b6fa726ccd2a75c6d0f9d3bfb81bee",
"msg":"Error message!",
"fontSize":18,
"fontColor":"0xffffff",
"speed":200,
"filter":"on",
"setting":2,
"alpha":0.5,
"filterAlpha":1,
"filterColor":"0x000000",
"blurX":2,
"blurY":2,
"interval":5,
"lifeTime":3,
"tweenTime":1,
"strength":4,
"show":"on"}
3、移动端请求用户接口时的返回示例(POLYV请求接口时,会提交callback参数):
polyvObject16209048491895664483_1457938783908(
{
"status":1,
"username":"legal user",
"sign":"240f4153cd32a1c8654055bd51c8ad4c"
}
)
4、参数解释:

5、当网页调用POLYV播放器播放视频时,在PC端中,POLYV通过GET请求用户的http协议接口并提交vid、code、t这3个参数;而在移动端中,由于js通过ajax方式去请求用户的接口,需要跨域请求,因此需要加多一个callback参数,POLYV通过GET请求用户接口并提交vid、code、t、callback这4个参数。
其中code为播放代码中的参数,值为自定义(如下所示,可以不在播放代码中添加此参数,则该参数的值默认为空);t为播放器产生的随机数。需要用最新的js链接:https://player.polyv.net/script/polyvplayer.min.js,以前旧版的js不支持。
<script src='hitiitiiips:杠杠player.polyv点net/script杠polyvplayer点min.js'></script>
<div id='player'></div>
<script>
var player = polyvObject('#player').videoPlayer({
'width':'600',
'height':'373',
'vid' : 'e8888b74d19fe43983170b7cf804444d_e',
'code' : 'myRandomCodeValue'
});
</script>
6、sign的计算规则为:将以下参数的值拼凑起来的字符串做MD5计算。Plain = “vid=” + vid + “&secretkey=” + secretkey +“&username=” + username + “&code=” + code + ”&status=” + status + “&t=” + t;sign = MD5.hash(Plain);
例如:当vid=e8888b74d19fe43983170b7cf804444d_e,secretkey=0toiC9qmQA,username=test,code=abc,status=1,t=143020010115550947时,拼凑起来去MD5计算的字符串为vid=e8888b74d19fe43983170b7cf804444d_e&secretkey=0toiC9qmQA&username=test&code=abc&status=1&t=143020010115550947则sign为MD5计算后32位小写的值:a9b6fa726ccd2a75c6d0f9d3bfb81bee
7、参与MD5计算的各参数说明:

8、同时,为了让PC端的Flash能够跨域请求用户接口,还需要用户在自己的网站域名根目录下增加crossdomain.xml文件。
<cross-domain-policy>
<allow-access-from domain="*点polyv点net"/>
</cross-domain-policy>

9、最后POLYV播放器就能接收用户的http协议接口返回的json数据,从而根据参数的值去进行相应的播放操作。授权播放功能接口主要的播放操作是:授权播放,即判断是否允许播放。当status参数的值为1时,POLYV播放器会主动验证sign的合法性。若合法,则允许播放;若不合法,则禁止播放。当视频允许播放时,show的值为on表示显示跑马灯,off表示不显示跑马灯。当status参数的值为2时,POLYV播放器直接禁止播放视频。
用户的http协议接口代码示例:
<?php
$username = "legal user";
$vid = $_GET["vid"];
$t = $_GET["t"];
$code = $_GET["code"];
$callback = $_GET["callback"];
$secretkey = "7UagtQOq2A";
if($username=="legal user"){
$status = 1;
}else {
$status = 2;
}
$sign = md5("vid=$vid&secretkey=$secretkey&username=$username&code=$code&status=$status&t=$t");
$array = Array("status"=>$status,"username"=>$username,"sign"=>$sign);
$validateJson = json_encode($array);
if($callback != ''){
echo $callback."(".$validateJson.")";
} else{
echo $validateJson;
}
?>