敬告:此 demo 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,威尼斯人888-5845vip威尼斯电子游戏。
♦ js-sdk 引用方式:
♦ 普通网页 script 方式加载:下载最新版 ,请在页面上调用 jsbridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge
♦ 腾讯云官方参考资料:
♦
♦
♦
♦
♦ 用腾讯平台提供的 secretkey 在你的服务器端 做签名保护
♦
登录、退出、昵称头像、事件监听等全局基础接口
sdkappid:
userid:
usersig:
jsbridge.txrtc.login({
//必须,数字,腾讯平台上创建的应用id
sdkappid: parseint($("#loginsdkappid_user1").val()),
//必须,字符串,用户id
userid : $("#loginuserid_user1").val(),
//必须,字符串,用户安全签名
//如何
usersig : $("#loginusersig_user1").val()
}, function(succ, data) {
if (succ) {
alert("登录成功");
} else {
alert("登录失败\n" json.stringify(data));
}
});
sdkappid:
userid:
usersig:
jsbridge.txrtc.login({
//必须,数字,腾讯平台上创建的应用id
sdkappid: parseint($("#loginsdkappid_user2").val()),
//必须,字符串,用户id
userid : $("#loginuserid_user2").val(),
//必须,字符串,用户安全签名
//如何
usersig : $("#loginusersig_user2").val()
}, function(succ, data) {
if (succ) {
alert("登录成功");
} else {
alert("登录失败\n" json.stringify(data));
}
});
sdkappid:
userid:
usersig:
jsbridge.txrtc.login({
//必须,数字,腾讯平台上创建的应用id
sdkappid: parseint($("#loginsdkappid_user3").val()),
//必须,字符串,用户id
userid : $("#loginuserid_user3").val(),
//必须,字符串,用户安全签名
//如何
usersig : $("#loginusersig_user3").val()
}, function(succ, data) {
if (succ) {
alert("登录成功");
} else {
alert("登录失败\n" json.stringify(data));
}
});
jsbridge.txrtc.logout(function(succ, data) {
if (succ) {
alert("退出成功");
} else {
alert("退出失败\n" json.stringify(data));
}
});
jsbridge.txrtc.getloginstatus(function(succ, data) {
//data.status 字符串类型
//logined 已登录
//logining 正在登录
//logout 已退出
alert(json.stringify(data));
});
nickname:
avatar:
jsbridge.txrtc.setuserinfo({
//字符串,昵称
nickname: $("#nickname").val(),
//头像,图片链接
avatar : $("#avatar").val()
}, function(succ, data) {
if (succ) {
alert("设置成功");
} else {
alert("设置失败\n" json.stringify(data));
}
});
jsbridge.txrtc.requestpermission(function(succ, data) {
//data.allowall 是否允许了全部权限
//data.neverask 是否勾选了“不在询问”,此时可调用 jsbridge.appsettings() 跳转到系统设置,让用户手动开启权限
alert(json.stringify(data));
});
//这是 trtc 最底层的事件监听器,其他的诸如音视频通话、直播等监听器都是基于此的二次封装
//此方法可以监听到 状态
jsbridge.txrtc.setlistener(function(succ, e) {
switch (e.on) {
case "onerror":
//出错
break;
case "onenterroom":
//自己进入房间
break;
case "onexitroom":
//自己退出房间
break;
case "onremoteuserenterroom":
//其他人进入房间
break;
case "onremoteuserleaveroom":
//其他人退出房间
break;
case "onmicdidready":
//已开启麦克风
break;
//...
//所有事件及其含义
}
showresult({
which: "setlistener",
e : e
});
});
/**
回调参数 e 为 json 类型
{
on : 事件名称,字符串类型
data: 事件参数,json 类型,具体含义请参考腾讯官方文档
}
**/
jsbridge.txrtc.removelistener(function(succ, data) {
if (succ) {
alert("移除成功");
} else {
alert("移除失败\n" json.stringify(data));
}
});
jsbridge.txrtc.getsdkversion(function(succ, data) {
alert(data.version);
});
enable:
jsbridge.txrtc.enablefloatwindow({
//布尔
enable: json.parse($("#enablefloat").val())
}, function(succ, data) {
if (succ) {
alert("设置成功");
} else {
alert("设置失败\n" json.stringify(data));
}
});
enable:
jsbridge.txrtc.enablemutemode({
//布尔
enable: json.parse($("#enablemute").val())
}, function(succ, data) {
if (succ) {
alert("设置成功");
} else {
alert("设置失败\n" json.stringify(data));
}
});
bellurl:
jsbridge.txrtc.setcallingbell({
//铃音链接
bellurl: $("#bellurl").val()
}, function(succ, data) {
if (succ) {
alert("设置成功");
} else {
alert("设置失败\n" json.stringify(data));
}
});
userid:
mediatype:
jsbridge.txrtc.call({
//字符串,目标用户的 userid
userid : $("#calluserid").val(),
//字符串,通话媒体类型
//video 视频通话
//audio 音频通话
mediatype: $("#callmediatype").val()
}, function(succ, data) {
if (!succ) {
alert("拨打失败\n" json.stringify(data));
}
});
groupid:
mediatype:
jsbridge.txrtc.groupcall({
//字符串,此次通话的群id
//需配合腾讯 使用
groupid : $("#groupcallgroupid").val(),
//字符串数组,目标用户的 userid 列表
userids : [ "user2", "user3", "user4" ],
//字符串,通话媒体类型
//video 视频通话
//audio 音频通话
mediatype: $("#groupcallmediatype").val()
}, function(succ, data) {
if (!succ) {
alert("群组通话失败\n" json.stringify(data));
}
});
jsbridge.txrtc.setcalllistener(function(succ, e) {
switch (e.on) {
case "onerror":
break;
case "oncallreceived":
break;
//...
//所有事件及其含义
}
showresult({
which: "setcalllistener",
e : e
});
});
/**
回调参数 e 为 json 类型
{
on : 事件名称,字符串类型
data: 事件参数,json 类型,具体含义请参考腾讯官方文档
}
**/
jsbridge.txrtc.removecalllistener(function(succ, data) {
if (succ) {
alert("移除成功");
} else {
alert("移除失败\n" json.stringify(data));
}
});
roomid:
speechmode:
opencamera:
openmicrophone:
jsbridge.txrtc.createchatroom({
//数字,此次通话的房间号
roomid : parseint($("#createchatroomroomid").val()),
//字符串,发言模式
//free 自由发言
//apply 申请获得主持人同意后才能发言
speechmode: $("#createchatroomspeechmode").val(),
//布尔,是否开启摄像头
opencamera: json.parse($("#createchatroomopencamera").val()),
//布尔,是否开启麦克风
openmicrophone: json.parse($("#createchatroomopenmicrophone").val())
}, function(succ, data) {
if (!succ) {
alert("创建失败\n" json.stringify(data));
}
});
roomid:
opencamera:
openmicrophone:
jsbridge.txrtc.enterchatroom({
//数字,此次通话的房间号
roomid : parseint($("#enterchatroomroomid").val()),
//布尔,是否开启摄像头
opencamera: json.parse($("#enterchatroomopencamera").val()),
//布尔,是否开启麦克风
openmicrophone: json.parse($("#enterchatroomopenmicrophone").val())
}, function(succ, data) {
if (!succ) {
alert("进入失败\n" json.stringify(data));
}
});
jsbridge.txrtc.destroychatroom(function(succ, data) {
if (succ) {
alert("解散成功");
} else {
alert("解散失败\n" json.stringify(data));
}
});
jsbridge.txrtc.setchatroomlistener(function(succ, e) {
switch (e.on) {
case "onerror":
break;
case "ondestroyroom":
break;
//...
//所有事件及其含义
}
showresult({
which: "setchatroomlistener",
e : e
});
});
/**
回调参数 e 为 json 类型
{
on : 事件名称,字符串类型
data: 事件参数,json 类型,具体含义请参考腾讯官方文档
}
**/
jsbridge.txrtc.removechatroomlistener(function(succ, data) {
if (succ) {
alert("移除成功");
} else {
alert("移除失败\n" json.stringify(data));
}
});
roomid:
roomname:
coverurl:
jsbridge.txrtc.createvideoliveroom({
//必须,数字,房间id
roomid : parseint($("#createvideoliveroomroomid").val()),
//字符串,房间名称
roomname: $("#createvideoliveroomroomname").val(),
//房间封面图
coverurl: $("#createvideoliveroomcoverurl").val()
}, function(succ, data) {
if (!succ) {
alert("创建失败\n" json.stringify(data));
}
});
roomid:
jsbridge.txrtc.entervideoliveroom({
//必须,数字,房间id
roomid: parseint($("#entervideoliveroomroomid").val())
}, function(succ, data) {
if (!succ) {
alert("进入失败\n" json.stringify(data));
}
});
jsbridge.txrtc.setvideoliveroomlistener(function(succ, e) {
switch (e.on) {
case "onerror":
break;
case "onroomdestroy":
break;
//...
//所有事件及其含义
}
showresult({
which: "setvideoliveroomlistener",
e : e
});
});
/**
回调参数 e 为 json 类型
{
on : 事件名称,字符串类型
data: 事件参数,json 类型,具体含义请参考腾讯官方文档
}
**/
jsbridge.txrtc.removevideoliveroomlistener(function(succ, data) {
if (succ) {
alert("移除成功");
} else {
alert("移除失败\n" json.stringify(data));
}
});
sdkappid:
userid:
usersig:
roomid:
role:
jsbridge.txrtc.enterroom({
//数字,腾讯平台上创建的应用id
sdkappid: parseint($("#enterroomsdkappid_user1").val()),
//字符串,用户id
userid : $("#enterroomuserid_user1").val(),
//字符串,用户安全签名
//如何
usersig : $("#enterroomusersig_user1").val(),
//数字,房间id,进入同一个房间的用户可以相互交流
roomid : parseint($("#enterroomroomid_user1").val()),
//字符串,以什么 进入房间
//anchor 主播
//audience 观众(听众)
role : $("#enterroomrole_user1").val(),
//字符串,场景类型,暂时只支持 audiocall 音频通话
scene : "audiocall"
}, function(succ, data) {
if (succ) {
alert("进入成功");
} else {
alert("进入失败\n" json.stringify(data));
}
});
sdkappid:
userid:
usersig:
roomid:
role:
jsbridge.txrtc.enterroom({
//数字,腾讯平台上创建的应用id
sdkappid: parseint($("#enterroomsdkappid_user2").val()),
//字符串,用户id
userid : $("#enterroomuserid_user2").val(),
//字符串,用户安全签名
//如何
usersig : $("#enterroomusersig_user2").val(),
//数字,房间id,进入同一个房间的用户可以相互交流
roomid : parseint($("#enterroomroomid_user2").val()),
//字符串,以什么 进入房间
//anchor 主播
//audience 观众(听众)
role : $("#enterroomrole_user2").val(),
//字符串,场景类型,暂时只支持 audiocall 音频通话
scene : "audiocall"
}, function(succ, data) {
if (succ) {
alert("进入成功");
} else {
alert("进入失败\n" json.stringify(data));
}
});
sdkappid:
userid:
usersig:
roomid:
role:
jsbridge.txrtc.enterroom({
//数字,腾讯平台上创建的应用id
sdkappid: parseint($("#enterroomsdkappid_user3").val()),
//字符串,用户id
userid : $("#enterroomuserid_user3").val(),
//字符串,用户安全签名
//如何
usersig : $("#enterroomusersig_user3").val(),
//数字,房间id,进入同一个房间的用户可以相互交流
roomid : parseint($("#enterroomroomid_user3").val()),
//字符串,以什么 进入房间
//anchor 主播
//audience 观众(听众)
role : $("#enterroomrole_user3").val(),
//字符串,场景类型,暂时只支持 audiocall 音频通话
scene : "audiocall"
}, function(succ, data) {
if (succ) {
alert("进入成功");
} else {
alert("进入失败\n" json.stringify(data));
}
});
jsbridge.txrtc.setlistener(function(succ, e) {
switch (e.on) {
case "onmicdidready": {
jsbridge.txrtc.removelistener();
alert("已打开麦克风");
break;
}
}
});
//在 setlistener 的 e.on == "onmicdidready" 时表示成功打开麦克风
jsbridge.txrtc.startlocalaudio({
//字符串,音频质量
//default 默认
//speech 语音
//music 音乐
quality: "default"
}, function(succ, data) {
if (!succ) {
alert("打开失败\n" json.stringify(data));
}
});
jsbridge.txrtc.stoplocalaudio(function(succ, data) {
if (succ) {
alert("关闭成功");
} else {
alert("关闭失败\n" json.stringify(data));
}
});
jsbridge.txrtc.exitroom(function(succ, data) {
if (succ) {
alert("退出成功");
} else {
alert("退出失败\n" json.stringify(data));
}
});
//这是 trtc 最底层的事件监听器,其他的诸如音视频通话、直播等监听器都是基于此的二次封装
//此方法可以监听到 状态
jsbridge.txrtc.setlistener(function(succ, e) {
switch (e.on) {
case "onerror":
//出错
break;
case "onenterroom":
//自己进入房间
break;
case "onexitroom":
//自己退出房间
break;
case "onremoteuserenterroom":
//其他人进入房间
break;
case "onremoteuserleaveroom":
//其他人退出房间
break;
case "onmicdidready":
//已开启麦克风
break;
//...
//所有事件及其含义
}
showresult({
which: "setlistener",
e : e
});
});
/**
回调参数 e 为 json 类型
{
on : 事件名称,字符串类型
data: 事件参数,json 类型,具体含义请参考腾讯官方文档
}
**/
jsbridge.txrtc.removelistener(function(succ, data) {
if (succ) {
alert("移除成功");
} else {
alert("移除失败\n" json.stringify(data));
}
});
监听回调数据: