|
流程简述, 请参考文档 https://61.191.27.18:9443/doc/
1、加载jSW库
<script type="text/javascript" src="../js/jsw.js"></script>
2、以非插件方式初始化jSW库
var initParams = {
url: http://61.191.27.18:8081, // bv_nginx.exe服务器地址,用于指示库websocket 服务器地址
calltype: jSW.CallProtoType.HTTP, // AUTO: IE优先使用OCX, 如果希望IE仍然使用HTTP通信, 请使用jSW.CallProtoType.HTTP
oninit: oninitcall
//jSW.swInit为异步接口,oninitcall是回调处理函数
//jSW.swInit函数返回0,并且回调通知成功,库初始化完成
}
var rc = jSW.swInit(initParams)
if(rc != jSW.RcCode.RC_CODE_S_OK){
//初始化失败
}
3、jSW初始化成功的回调之后,进行登录。
构建Session,在Session的onopen事件中,登录SmartEye平台。向Sesssion注册login事件处理函数,用以处理登录结果。
var session = null
function oninitcall(rc){
if(rc == jSW.RcCode.RC_CODE_S_OK){
session = new jSW.SWSession({
server: 127.0.0.1, // 如果是jSW.CallProtoType.HTTP方式,这里需要填写具体的IP
port: 9701,
onopen: function (sess) {
sess.swLogin({
user: admin,
password: 123456
})
},
onclose: function(){
document.getElementById('loginResult').innerText = "与服务器的命令传输 websocket 通道 关闭"
}
});
// 注册事件的回调函数
session.swAddCallBack('login', sessionLoginCallback);
session.swAddCallBack('logout', sessionCallback);
session.swAddCallBack('pulist', OnPulistCallback)
}
}
4、登录成功获取设备列表。
获取设备列表有两种方式,jSW自动获取全部设备列表或者调用者手动获取设备列表。
function sessionLoginCallback(sender, event, json){
if (json.code == jSW.RcCode.RC_CODE_S_OK) {
//登录成功
} else {
//登录失败
}
}
function OnPulistCallback(sender, event, json){
//获得设备列表成功, sender是SWSession对象
sender._arr_pu //设备数组
sender._arr_pu_online //在线设备数组
}
5、获取指定设备对象,并以rtmp不播放的方式打开视频
获得设备列表成功之后,就可以通过设备对象的视频通道 来打开视频了。
如以var puid = PU_55AA00
var pu = session.swGetPu(puid)
if(pu){
//pu._arr_channel 音视频通道数组
pu._arr_channel[0].swOpenEx({
div: null,
prototype: "rtmp",
media: 10,
callback: OnOpenRtmpHasResult,
tag: pu._arr_channel[0]
})
}
6、以打开rtmp打开视频回调成功,获取播放地址
function OnOpenRtmpHasResult(options, response, dialogHandle){
if(response.emms.code == jSW.RcCode.RC_CODE_S_OK){
//以RTMP获取视频流打开成功,可以获取rtmp视频拉流地址了
var aimPu = options.tag
var urlObj = aimPu.swGetUrl() //获取rtmp 拉流地址
console.log(urlObj)
}
}
|
|