更新说明
支持通过摄像头SN调用单个视频,FLASH及HLS播放按浏览器自适应。
支持MD5密码传参
去掉xml获取参数功能,统一改用post方式从远程服务器获取参数,去除type参数
优化与服务器通讯中断后的自动重连逻辑,同时不影响正在播放的视频
优化播放效果,当播放异常暂停后的重连逻辑
播放视频的尺寸根据父容器自动适应
调用示例
//将以下代码嵌入到需要调用视频的HTML页面
+(function($) {
$('#yst-video-box').getVideo({
//调用参数:按需增加,可以为空或使用默认值,可以通过URL,JSON传参
user: 'demo', //默认用户名
dev: 'ads-xxxxx' //摄像头序列号或者对应的ID值
});
})(jQuery);
参数说明
参数获取优先级:登录时的参数 > post参数 > url传参 > data属性 > js传参 > js缺省值。所有参数均可省略,省略时将按优先级顺序获取,直至缺省值;
//post获取参数
geturl: '', //get/post提交的url,为空则从url/data/js获取视频参数
getdata: {}, //get/post提交的参数(json串)
//视频参数
code: 0, //视频传输协议:0=监控私有协议,1=直播rtmp协议,2=直播hls协议
ip: 'xxx.com', //默认服务器,可以是域名或IP地址
port: '', //默认端口号,为空则根据传输协议自动采用默认的端口号
user: '', //默认用户名,rtmp=livestreamname(自定义的实例名)
password: '', //默认密码,rtmp=liveapp(默认live)
dev: '', //设备ID(值为数字时)/设备sn(值为字符串时),空或0表示获取第1台设备,
src: '', //视频播放地址,如果有定义则直接调用src而忽略ip,user等参数
autostart: true, //当用户登录后所有设备自动开启切片,优化HLS播放体验,flash方式时忽略此参数
//播放器参数
player: 0, //播放器:默认自动适应,1=flash播放(PC),2=html5播放(移动端 )
swfPath: 'js/', //播放器路径,player=1时(flash播放时)调用
res: 1, //分辨率:默认1=辅码流,0=主码流,仅针对flash播放有效
ratio: '0', //视频高/宽比例:小数0.75或9/16,空或0时不指定比例,占满整个播放容器
auto: 1, //是否自动播放
//delay: 2000, //延时播放时间,待生成切片文件/或广告后再播放
//duration: 0, //连续播放时间限制,达到指定的时间后切断视频源,0表示不限制,暂未限制
//其它参数
control: 0, //是否显示视频控制按钮
list: 1, //是否显示播放列表,当前登录账号下有多个可用视频且为HTML5播放时显示
tips: 0, //是否开启提示
logs: 0 //是否开启日志
url传参
示例1: http://xxx.com?user=demo&dev=48
示例1直接通过浏览器传递监控直播视频的参数(不推荐);
data属性传参
通过播放容器的data-xxx属性传参给js
js传参
$('#video1').getVideo({
ip: 'xxx.com', //默认服务器地址
user: 'demo', //默认用户名
password: '', //默认密码
dev: 'sn01', //设备号/实例名,空或0表示获取第1台设备
});
json返回参数
通过json获取视频参数(传入了geturl的参数),jsonp服务器端实例:
$callback = $_REQUEST['callback'];
$vid = $_REQUEST['vid'];
//自定义视频参数数组项,可从服务器数据库获取
$data_array = array(
array(
'vid' => '4',
'ip' => 'xxx.cn',
'user' => 'demo1',
'password' => '123456',
),
array(
'vid' => '5',
'ip' => 'xxx.com',
'user' => 'demo2',
'password' => '',
),
array(
'vid' => '6',
'ip' => 'xxx.com',
'user' => 'demo3',
)
);
//查询匹配的数组
foreach ($data_array as $data) {
if ($vid==$data['vid']){
$output=$data;
break;
}
}
//输出JSON
if ($callback) {
header('Content-Type: text/javascript');
echo $callback . '(' . json_encode($output) . ');';
} else {
header('Content-Type: application/x-json');
echo json_encode($output);
//{"ip":"xxx.com","port":"2005","user":"demo","password":"","dev":""}
}
?>