用户自定义参数

在播放代码中,用户可以添加参数session_id,自定义为任何值(比如,表示学员信息的学员ID),最长不能超过50个英文字符。示例代码如下:

<script src='//player.polyv.net/script/polyvplayer.min.js'></script>
<div id='plv_e2e84a7383f869a0c8501b0c2f3dbdec_e'></div>
<script>
var player = polyvObject('#plv_e2e84a7383f869a0c8501b0c2f3dbdec_e').videoPlayer({
 'width':'600',
 'height':'450',
 'vid' : 'e2e84a7383f869a0c8501b0c2f3dbdec_e',
'session_id' :'TEST_POLYV'
});
</script>

当用户访问使用了以上示例播放代码的页面时,播放代码js会把session_id提交到POLYV系统的播放日志数据库中。当用户通过调用获取某一天视频日志时,就能查询到日志里面每一条记录中的session_id,如下图所示:

QQ图片20160815180751

播放器函数接口汇总

供javascript调用的播放器函数接口

函数名 参数 返回 说明 代码示例
j2s_getCurrentTime 秒数 返回当前播放头的时间,例如视频时长120秒,播放头时间在20.5秒,则返回20.5;

页面javascript可不断轮询此播放时间,配合后面暂停/

播放/停止等函数,对播放过程实现高级的控制。

查看
j2s_pauseVideo 暂停播放当前视频 查看
j2s_resumeVideo 恢复播放当前视频 查看
j2s_stopVideo 停止播放当前视频,并显示结束画面 查看
j2s_seekVideo _second JS控制播放器SEEK功能 ,函数名:j2s_seekVideo(_second)其中参数_second 为秒数 查看
changeVid _vid 在不刷新页面和播放器的情况下,切换到下一个视频,可应用于自定义播放列表,函数名:changeVid(_vid)其中参数_vid 为同一个polyv账号下视频的id 查看
j2s_getFlowCount() 字节数 获取当前流量(单位:字节)的接口供JS调用 查看
j2s_getDuration() 秒数 获取当前视频的播放时长(播放器初始化完毕才可以调用,默认为0,播放器初始化完毕事件为s2j_onPlayerInitOver) 查看
j2s_stayInVideoTime() 秒数 只记录正常播放过程中的观看时间,包括视频缓冲的时间,不包括广告、片头、暂停、片尾等时间。 查看
j2s_realPlayVideoTime() 秒数 只记录正常播放过程中的观看时间,不包括视频缓冲的时间,也不包括广告、片头、暂停、片尾等时间。 查看
j2s_showInterAction() 控制问答播放器显示问答
j2s_hideInterAction() 控制问答播放器隐藏问答

播放器函数接口示例一

演示

当前观看时间(包含视频缓冲时间)是 0 秒
当前观看时间(不包含视频缓冲时间)是 0 秒
当前播放进度是 0 秒
当前流量: 0 字节 | 0 KB
当前视频的时长是 0 秒
示例代码
点击查看播放器函数接口说明

<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="708" height="490" id="polyvplayer02bfeb00e2ba940698c54cdf517aa9b6_0"><PARAM NAME=movie VALUE="http://player.polyv.net/videos/player.swf"><param name="allowscriptaccess" value="always"><param name="wmode" value="Transparent"><param name="flashvars" value="vid=02bfeb00e2ba940698c54cdf517aa9b6_0" /><param name="allowFullScreen" value="true" /><EMBED src="http://player.polyv.net/videos/player.swf" width="708" height="490"  TYPE="application/x-shockwave-flash" allowscriptaccess="always" wmode="Transparent" name="polyvplayer02bfeb00e2ba940698c54cdf517aa9b6_0" allowFullScreen="true" flashvars="vid=02bfeb00e2ba940698c54cdf517aa9b6_0"/></EMBED></OBJECT><br />
 
<span id="stayInVideoTime">当前观看时间(包含视频缓冲时间)是 0 秒</span><br>
<span id="realPlayVideoTime">当前观看时间(不包含视频缓冲时间)是 0 秒</span><br>
<span id="getCurrentTime">当前播放进度是 0 秒</span><br />
<span id="flow">当前流量: 0 字节 | 0 KB</span><br />
<span id="duration">当前视频的时长是 0 秒</span><br />
 
<input type="button" onclick="resume()" value="播放"></input>
<input type="button" onclick="pause()" value="暂停"></input>
<input type="button" onclick="seek(30)" value="seek到第30秒"></input>
<input type="button" onclick="stop()" value="停止"></input>
<input type="button" onclick="nextVideo()" value="切换到下一个视频"></input><br />
 
<script type="text/javascript">
function getPlayer(movieName) {
 if (navigator.appName.indexOf("Microsoft") != -1) {
  var reObj=window[movieName];
  try
  {
   if(reObj.length>0)
   {
    return reObj[0];
   }
            else
            {
              return reObj;
            }
  }catch(e)
  {
    
  }
  return ;
 }
 else {
  return document[movieName];
 }
}
var player=getPlayer("polyvplayer02bfeb00e2ba940698c54cdf517aa9b6_0");
 
function resume()
{
  player.j2s_resumeVideo();
}
 
function pause()
{
  player.j2s_pauseVideo();
} 
 
function seek(_sec)
{
  player.j2s_seekVideo(_sec);
}
 
function stop()
{
  player.j2s_stopVideo();
}
 
function nextVideo()
{
  player.changeVid("02bfeb00e27ff92a76364b16af2f115e_0");
}
 
function render()
{
if(player != undefined && player.j2s_stayInVideoTime != undefined && player.j2s_realPlayVideoTime != undefined && player.j2s_getCurrentTime != undefined && player.j2s_getDuration != undefined && player.j2s_getFlowCount != undefined){
  var sec1=player.j2s_stayInVideoTime();
  var sec2=player.j2s_getCurrentTime();
  var sec3=player.j2s_getDuration();
  var sec4=player.j2s_realPlayVideoTime();
  var byte=player.j2s_getFlowCount();
  document.getElementById("stayInVideoTime").innerHTML="当前观看时间(包含视频缓冲时间)是 <span style='color:#ff0000;'>"+sec1+"</span> 秒";
  document.getElementById("realPlayVideoTime").innerHTML="当前观看时间(不包含视频缓冲时间)是 <span style='color:#ff0000;'>"+sec4+"</span> 秒";
  document.getElementById("getCurrentTime").innerHTML="当前播放进度是 <span style='color:#ff0000;'>"+sec2+"</span> 秒";
  document.getElementById("duration").innerHTML="当前视频的时长是 <span style='color:#ff0000;'>"+sec3+"</span> 秒";
  document.getElementById("flow").innerHTML="当前流量: <span style='color:#ff0000;'>"+byte+"</span> 字节 | <span style='color:#ff0000;'>"+byte/1024+"</span> KB";
}
}
var interval=setInterval("render()",500);
</script>

播放器函数接口示例二

演示

当前观看时间(包含视频缓冲时间)是 0 秒
当前观看时间(不包含视频缓冲时间)是 0 秒
当前播放进度是 0 秒
当前流量: 0 字节 | 0 KB
当前视频的时长是 0 秒

示例代码
点击查看播放器函数接口说明

<script src="https://player.polyv.net/script/polyvplayer.min.js"></script>
<div id="plv_02bfeb00e2ba940698c54cdf517aa9b6_0"></div>
<script>
var player = polyvObject('#plv_02bfeb00e2ba940698c54cdf517aa9b6_0').videoPlayer({
    'width':'708',
    'height':'490',
    'vid' : '02bfeb00e2ba940698c54cdf517aa9b6_0'
});
</script>
   
<span id="stayInVideoTime">当前观看时间(包含视频缓冲时间)是 0 秒</span><br>
<span id="realPlayVideoTime">当前观看时间(不包含视频缓冲时间)是 0 秒</span><br>
<span id="getCurrentTime">当前播放进度是 0 秒</span><br>
<span id="flow">当前流量: 0 字节 | 0 KB</span><br>
<span id="duration">当前视频的时长是 0 秒</span><br>
    
<input type="button" onclick="player.j2s_resumeVideo()" value="播放">
<input type="button" onclick="player.j2s_pauseVideo()" value="暂停">
<input type="button" onclick="player.j2s_seekVideo(30)" value="seek到第30秒">
<input type="button" onclick="player.j2s_stopVideo()" value="停止">
<input type="button" onclick="nextVideo()" value="切换到下一个视频"><br>
    
<script type="text/javascript">
function nextVideo()
{
  player.changeVid("02bfeb00e27ff92a76364b16af2f115e_0");
}
   
function render()
{
        if(player != undefined && player.j2s_stayInVideoTime != undefined && player.j2s_realPlayVideoTime != undefined && player.j2s_getCurrentTime != undefined && player.j2s_getDuration != undefined && player.j2s_getFlowCount != undefined){
        var sec1=player.j2s_stayInVideoTime();
        var sec2=player.j2s_getCurrentTime();
        var sec3=player.j2s_getDuration();
        var sec4=player.j2s_realPlayVideoTime();
        var byte=player.j2s_getFlowCount();
        document.getElementById("stayInVideoTime").innerHTML="当前观看时间(包含视频缓冲时间)是 <span style='color:#ff0000;'>"+sec1+"</span> 秒";
        document.getElementById("realPlayVideoTime").innerHTML="当前观看时间(不包含视频缓冲时间)是 <span style='color:#ff0000;'>"+sec4+"</span> 秒";
        document.getElementById("getCurrentTime").innerHTML="当前播放进度是 <span style='color:#ff0000;'>"+sec2+"</span> 秒";
        document.getElementById("duration").innerHTML="当前视频的时长是 <span style='color:#ff0000;'>"+sec3+"</span> 秒";
        document.getElementById("flow").innerHTML="当前流量: <span style='color:#ff0000;'>"+byte+"</span> 字节 | <span style='color:#ff0000;'>"+byte/1024+"</span> KB";
    }
}
var interval=setInterval("render()",500);
</script>

播放器flashvars参数

参数名 取值 说明 代码示例
loading_bg_img url 播放器一开始LOADING时的大背景图URL 查看
df 1-3 视频默认播放的清晰度,取值范围1-3  ;  如:df=1 流畅,df=2高清,df=3超清 查看
teaser_time 视频片头图片显示多少秒后消失,如: teaser_time=2.5 查看
watchStartTime 视频默认从第几秒开始播放 , 如 watchStartTime=30.5 查看
watchEndTime 视频播放结束的秒数,如整段视频时长120秒,watchEndTime=60,则视频在播放到60秒时会结束播放,并且只能在60秒内进行seek拖动播放 查看
ban_seek_by_limit_time on/off 用于限制用户只能以自然播放的形式来观看视频,不能通过seek拖拉来快速观看视频。
一般是配合“watchStartTime”来使用,默认值为off(如果没有设置该参数,则watchStartTime默认是从0秒开始播放),当设定为ban_seek_by_limit_time =on后,并设定了watchStartTime=xx秒,则播放过程中,只能在watchStartTime范围seek拖动视频,或自然播放过程中,播放头时间超过watchStartTime后,可在播放头时间内seek拖动视频
查看
start 截取视频的一部分作为一个独立的视频,如原视频时长60秒,设定start=20后,则视频显示为40秒,并且从原视频的第20秒开始播放。
通常配合end参数一起使用。
查看
end 截取视频的一部分作为一个独立的视频,如原视频时长60秒,设定start=20,end=50后,则视频显示为30秒,并且从原视频的第20秒开始播放,到原视频的50秒结束播放。 查看
autoplay string 如果当前是第一个播放的视频,用该参数来控制是否自动播放,0表示关闭自动播放,切换后的视频不受此参数控制 查看
setScreen string 设置视频默认播放的屏幕比例,取值范围
1.“100”:原始
2.“4_3”:4:3
3.“16_9”:16:9
4.“fill”:铺满
查看
setVolumeM Number 视频声音增益
1为原视频音量大小,不变
1.5为原视频音量1.5倍
查看
is_auto_replay on/off 自动循环播放当前视频,默认值为off。注:在播放列表里会忽略本参数。 查看
ban_ad_time on/off on则表示不显示广告倒计时 查看
ban_ui on/off 不显示所有控制栏,右侧栏等按钮,只有播放画面和Loading,设为on为不显示 查看
ban_control on/off 禁止播放器上所有按钮的功能 查看
list_id id 在播放器内显示播放列表
is_play_once on/off 只允许观看一次,播放结束后,返回封面并隐藏控制栏,禁止所有操作
video_bg_color 十六进制 为了让视频背景与网页背景融合,可以用户自定义视频背景颜色,如:ccff00
ban_history_time on/off on表示不记录当前的播放时间,并且不续播
history_video_duration int类型,取正整数,单位为分钟 表示视频时长超过多少分钟时,flash播放器会记录历史播放进度,下次播放时自动续播
ban_skin_big_play_btn on/off 对播放器皮肤的特别定制,可以去掉控制栏的大播放按钮
ban_bar_keep_play_btn on/off 去掉“现代”播放器皮肤的控制栏,只保留居中的大播放按钮
interaction_data string 修改教育答题提交到后台的地址,如http://yoursite.com/getexam
logo_url string logo图片地址,如http://www.polyv.net/images/newnavbar/logo.png
logo_alpha Number logo透明度,取值是0~1
logo_link string 点击logo后跳转链接,如http://my.polyv.net
logo_pos Number logo显示位置,1:左上角;2:右上角;3:左下角;4:右下角
ban_preview_video on/off 禁止显示缩略图
barHideTime Number 皮肤自定义隐藏时间
注:以上对时间点的设置后,根据视频文件实际关键帧所在时间点,实际显示的时间可能有几秒的偏差. 如 设定watchStartTime=20 ,而离20秒最近的关键帧位置在18秒,则实际播放时,从18秒开始播放.

HTML代码和多终端代码添加多个flashvars参数示例:

HTML代码(多个flashvars参数用符合“&”连接):

<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="600" height="416" id="e2e84a738396503c313915c17b5b08ac_e">
<PARAM NAME=movie VALUE="http://player.polyv.net/videos/player.swf">
<param name="allowscriptaccess" value="always">
<param name="wmode" value="Transparent">
<param name="flashvars" value="vid=e2e84a738396503c313915c17b5b08ac_e&watchStartTime=5&watchEndTime=20" /><param name="allowFullScreen" value="true" />
<EMBED src="http://player.polyv.net/videos/player.swf" width="600" height="416"  TYPE="application/x-shockwave-flash" allowscriptaccess="always" wmode="Transparent" name="e2e84a738396503c313915c17b5b08ac_e" allowFullScreen="true" flashvars="vid=e2e84a738396503c313915c17b5b08ac_e&watchStartTime=5&watchEndTime=20"/></EMBED>
</OBJECT>

多终端代码(多个flashvars参数用{}括起来,格式为{“aa”:”bb”,”cc”:”dd”}):

<script src='http://static.polyv.net/file/polyvplayer_v2.0.min.js'></script>
<div id='plv_e2e84a7383891b0f03445b0f683d0b18_e'></div>
<script>
var player = polyvObject('#plv_e2e84a7383891b0f03445b0f683d0b18_e').videoPlayer({
	'width':'600',
	'height':'416',
	'vid' : 'e2e84a7383891b0f03445b0f683d0b18_e',
	'flashvars':{"watchStartTime":"5","watchEndTime":"20"}
});
</script>

自定义字幕样式flashvars参数

通过flashvars参数可自定义字幕的样式,具体参数说明如下所示。

参数名代表意义参数可选参数类型默认值
srt_caption_txt_size字幕字体大小范围:12--55整型20
srt_caption_txt_color字幕字体颜色包含三个 8 位 RGB 颜色成分的数字;例如,0xFFFFF 为白色0xFFFFFF 白色
srt_caption_txt_font字幕字体String微软雅黑
srt_caption_txt_letterspacing字幕字体间距整型0.5
srt_caption_txt_filter是否描边“on” :描边 “off”:不描边Stringon
srt_caption_txt_filter_alpha字幕描边透明度范围:0~1整型1
srt_caption_txt_filter_color字幕描边颜色包含三个 8 位 RGB 颜色成分的数字;例如,0x000000 为黑色0x000000 黑色
srt_caption_txt_filter_blurx字幕描边水平模糊量范围:0~255整型4
srt_caption_txt_filter_blury字幕描边垂直模糊量范围:0~255整型4
srt_offset_time字幕时间偏移整型0
stage_width_set用户指定宽,依据这个值进行等比缩放整型1080
srt_caption_txt_height自定义字幕距离控制栏的高度整型0

多终端代码设置播放器flashParams

在使用JavaScript情况下,如何给播放器设置参数?
例如拷贝播放器代码
<script src='http://static.polyv.net/file/polyvplayer_v2.0.min.js'></script>
<div id='plv_e2e84a73838206ff3b459cd5f05dbaaa_e'></div>
<script>
var player = polyvObject('#plv_e2e84a73838206ff3b459cd5f05dbaaa_e').videoPlayer({
	'width':'600',
	'height':'466',
	'vid' : 'e2e84a73838206ff3b459cd5f05dbaaa_e'
});
</script>

需要给播放器设置flashParams参数,那么在播放器代码后面加一段即可(注意player最后一行的参数代码末尾不能有逗号,否则会出现IE加载不出播放器的情况):

<script src='http://static.polyv.net/file/polyvplayer_v2.0.min.js'></script>
<div id='plv_e2e84a73838206ff3b459cd5f05dbaaa_e'></div>
<script>
var player = polyvObject('#plv_e2e84a73838206ff3b459cd5f05dbaaa_e').videoPlayer({
	'width':'600',
	'height':'466',
	'vid' : 'e2e84a73838206ff3b459cd5f05dbaaa_e',
    'flashParams':{'wmode':'window','allowScriptAccess':'always','allowFullScreen':'false'}
});
</script>

 

播放器事件汇总

播放器在特定时刻会尝试调用下列JS函数,可在页面实现下列函数,捕获播放器事件

函数名 参数 说明 代码示例
s2j_onPlayerInitOver vid 播放器数据初始化完毕后,Flash调用此函数 查看
s2j_onPlayStart vid 播放器成功加载视频文件并缓冲完成后,即将开始播放第1秒时,Flash调用此函数 查看
s2j_onPlayOver vid 视频播放结束后,Flash调用此函数 查看
s2j_onVideoPlay vid 当触发播放事件时,Flash调用此函数 查看
s2j_onVideoPause vid 当触发暂停事件时,Flash调用此函数 查看
s2j_onVideoSeek vid,position,offset 当触发seek事件时,Flash调用此函数;其中position为seek前的播放进度,offset为seek后的播放进度 查看
s2j_onPptDataParam vid 播放器把PPT数据URL,告诉页面,由页面通知PPT播放列表加载此URL的数据事件 查看
s2j_onInteractionData vid,sendTxt 当触发答题事件时,Flash调用此函数,发送教育问答题目、id等数据(sendTxt参数) 查看
s2j_onFullScreen vid 当触发全屏事件时,Flash调用此函数
s2j_onNormalScreen vid 当触发普屏事件时,Flash调用此函数
onbuffer vid 当触发视频播放过程中缓冲时,Flash调用此函数
s2j_onPlayerError type,vid 当触发播放器错误提示时,Flash调用此函数

注:
s2j_onPlayerError事件中,播放器错误提示类型type参数说明:

__onStreamPlayFaild 视频文件加载失败
__onStreamLoadTimeOut 视频文件加载超时
__onVideoFileKeyError 视频文件URL用到的KEY接口获取失败
__onSkinLoadIoError 皮肤加载失败
__onVxmlStatusError Vxml加载失败
__onUserWebSiteOutFlow 用户流量超标
__onUserWebSiteTimeOut 用户流量超标/过期
__onDomainWhiteBlackCheckError 黑白名单检查不通过
__onXmlError Vxml、uxml加载失败
__onVideoPlayBan 禁止播放
__onVideoPlayTimeOut 视频播放已超过限定次数
__onHorseRaceLampError 跑马灯加载失败
__onVerificationBan 跑马灯权限控制
__onVerificationError 跑马灯验证失败