|
|
|
|
var isCall,iCount;
|
|
|
|
|
|
|
|
|
|
let rtc = null;
|
|
|
|
|
//相关接口前缀
|
|
|
|
|
var demoRoot = window._CONFIG['videoInterface'];
|
|
|
|
|
|
|
|
|
|
//发起视频通话的用户id (大屏发起请求,保证和用户账户id不重复即可)
|
|
|
|
|
let applyId="1173";//重重重,这里写死9999吧,这样我们会把你标记成大屏
|
|
|
|
|
//发起视频通话的用户名称
|
|
|
|
|
let applyUser = "联动中心";
|
|
|
|
|
//房间号
|
|
|
|
|
let roomId="";
|
|
|
|
|
//拨打对象id 账号/密码:safesoftDemo/666666
|
|
|
|
|
let userId = ""
|
|
|
|
|
//拨打对象名称
|
|
|
|
|
let userName = "";
|
|
|
|
|
//发起通话
|
|
|
|
|
$(function(){
|
|
|
|
|
let obj= GetRequest()
|
|
|
|
|
roomId = obj.id//拨打对象id
|
|
|
|
|
userId = obj.id//拨打对象id
|
|
|
|
|
userName = obj.name//拨打对象name
|
|
|
|
|
openVideoCall()
|
|
|
|
|
})
|
|
|
|
|
function GetRequest() {
|
|
|
|
|
var url = location.search; //获取url中"?"符后的字串
|
|
|
|
|
var theRequest = new Object();
|
|
|
|
|
if (url.indexOf("?") != -1) {
|
|
|
|
|
var str = url.substr(1);
|
|
|
|
|
strs = str.split("&");
|
|
|
|
|
for(var i = 0; i < strs.length; i ++) {
|
|
|
|
|
theRequest[strs[i].split("=")[0]]=decodeURIComponent(strs[i].split("=")[1]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return theRequest;
|
|
|
|
|
}
|
|
|
|
|
function openVideoCall() {
|
|
|
|
|
console.log(window)
|
|
|
|
|
// $('#spth_win').show();
|
|
|
|
|
//拨打对象名称展示
|
|
|
|
|
$('#spth_caller').html(userName);
|
|
|
|
|
isCall = 1;
|
|
|
|
|
var config = genTestUserSig(applyId);
|
|
|
|
|
//发送通话请求,数据库加一条通话请求数据
|
|
|
|
|
$.ajax({
|
|
|
|
|
url: demoRoot + 'video/call/apply',
|
|
|
|
|
type: 'post',
|
|
|
|
|
contentType: 'application/json',
|
|
|
|
|
data: JSON.stringify({
|
|
|
|
|
applyId: applyId,
|
|
|
|
|
userId: userId,
|
|
|
|
|
roomId: roomId,
|
|
|
|
|
applyUser: applyUser,
|
|
|
|
|
acceptUser: userName
|
|
|
|
|
}),
|
|
|
|
|
dataType: 'json',
|
|
|
|
|
success: function (data) {
|
|
|
|
|
//js sdk 配置
|
|
|
|
|
rtc = new RtcClient({
|
|
|
|
|
userId: applyId,//用户id-------↓-----------唯一修改点,唯一修改点,唯一修改点,唯一修改点,唯一修改点,唯一修改点,唯一修改点,唯一修改点,唯一修改点,唯一修改点,唯一修改点
|
|
|
|
|
roomId: userId,//房间号 roomId修改为userId
|
|
|
|
|
sdkAppId: config.sdkAppId,//---↑-----------唯一修改点,唯一修改点,唯一修改点,唯一修改点,唯一修改点,唯一修改点,唯一修改点,唯一修改点,唯一修改点,唯一修改点,唯一修改点
|
|
|
|
|
userSig: config.userSig
|
|
|
|
|
});
|
|
|
|
|
rtc.join();//推流
|
|
|
|
|
//轮询数据库,判断app是否挂断
|
|
|
|
|
iCount = setInterval("callExist(" + applyId + "," + roomId + ")", "3000");
|
|
|
|
|
},
|
|
|
|
|
error: function () {
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
//查询app是否挂断
|
|
|
|
|
function callExist(userId, roomId) {
|
|
|
|
|
$.ajax({
|
|
|
|
|
url: demoRoot + 'video/call/exist',
|
|
|
|
|
type: 'post',
|
|
|
|
|
data: {
|
|
|
|
|
applyId: userId,
|
|
|
|
|
roomId: roomId
|
|
|
|
|
},
|
|
|
|
|
dataType: 'json',
|
|
|
|
|
success: function (data) {
|
|
|
|
|
if (data == false) {
|
|
|
|
|
clearInterval(iCount);
|
|
|
|
|
if (isCall == 1) {
|
|
|
|
|
window.parent['goBack']()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(rtc){
|
|
|
|
|
rtc.leave();
|
|
|
|
|
rtc = null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$('#spth_win_all').hide();
|
|
|
|
|
$('#spth_win').hide();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
error: function () {
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
//关闭视屏通话
|
|
|
|
|
function closeVideoCall() {
|
|
|
|
|
$.ajax({
|
|
|
|
|
url: demoRoot + 'video/call/end',
|
|
|
|
|
type: 'post',
|
|
|
|
|
contentType: 'application/json',
|
|
|
|
|
data: JSON.stringify({
|
|
|
|
|
applyId: applyId,
|
|
|
|
|
userId: userId,
|
|
|
|
|
roomId: roomId,
|
|
|
|
|
applyUser: applyUser,
|
|
|
|
|
acceptUser: userName
|
|
|
|
|
}),
|
|
|
|
|
dataType: 'json',
|
|
|
|
|
success: function () {
|
|
|
|
|
isCall = 0;
|
|
|
|
|
rtc.leave();
|
|
|
|
|
rtc = null;
|
|
|
|
|
},
|
|
|
|
|
error: function () {
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
window.parent['goBack']()
|
|
|
|
|
}
|