trtc 实时音视频 -九游会国际

webapp快捷打包
trtc 实时音视频
转到模块插件

敬告:此 demo 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,九游会国际-九游会真人第一品牌

js-sdk 引用方式:

♦ 普通网页 script 方式加载:下载最新版 ,请在页面上调用 jsbridge 接口之前引用 jsbridge-mini.js 库;

♦ js module 方式引用:npm install ym-jsbridge

腾讯云官方参考资料:

♦ 用腾讯平台提供的 secretkey 在你的服务器端 做签名保护

登录、退出、昵称头像、事件监听等全局基础接口

login 登录 trtc (测试 user1)

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));
    }
});

login 登录 trtc (测试 user2)

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));
    }
});

login 登录 trtc (测试 user3)

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));
    }
});

logout 退出 trtc

jsbridge.txrtc.logout(function(succ, data) {
    if (succ) {
      alert("退出成功");
    } else {
      alert("退出失败\n"   json.stringify(data));
    }
});

getloginstatus 获取当前登录状态

jsbridge.txrtc.getloginstatus(function(succ, data) {
  //data.status 字符串类型
  //logined  已登录
  //logining 正在登录
  //logout   已退出
  alert(json.stringify(data));
});

setuserinfo 设置昵称、头像

nickname:

avatar:

jsbridge.txrtc.setuserinfo({
  //字符串,昵称
  nickname: $("#nickname").val(),
  //头像,图片链接
  avatar  : $("#avatar").val()
}, function(succ, data) {
  if (succ) {
    alert("设置成功");
  } else {
    alert("设置失败\n"   json.stringify(data));
  }
});

requestpermission 请求录音和摄像头权限

jsbridge.txrtc.requestpermission(function(succ, data) {
  //data.allowall 是否允许了全部权限
  //data.neverask 是否勾选了“不在询问”,此时可调用 jsbridge.appsettings() 跳转到系统设置,让用户手动开启权限
  alert(json.stringify(data));
});

setlistener

//这是 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 类型,具体含义请参考腾讯官方文档
}
**/

removelistener 移除事件监听器

jsbridge.txrtc.removelistener(function(succ, data) {
  if (succ) {
    alert("移除成功");
  } else {
    alert("移除失败\n"   json.stringify(data));
  }
});

getsdkversion 获取 sdk 版本

jsbridge.txrtc.getsdkversion(function(succ, data) {
  alert(data.version);
});

enablefloatwindow 开启/关闭 悬浮窗功能

enable:

jsbridge.txrtc.enablefloatwindow({
  //布尔
  enable: json.parse($("#enablefloat").val())
}, function(succ, data) {
  if (succ) {
    alert("设置成功");
  } else {
    alert("设置失败\n"   json.stringify(data));
  }
});

enablemutemode 开启/关闭 静音模式

enable:

jsbridge.txrtc.enablemutemode({
  //布尔
  enable: json.parse($("#enablemute").val())
}, function(succ, data) {
  if (succ) {
    alert("设置成功");
  } else {
    alert("设置失败\n"   json.stringify(data));
  }
});

setcallingbell 自定义来电铃音

bellurl:

jsbridge.txrtc.setcallingbell({
  //铃音链接
  bellurl: $("#bellurl").val()
}, function(succ, data) {
  if (succ) {
    alert("设置成功");
  } else {
    alert("设置失败\n"   json.stringify(data));
  }
});

call 拨打电话(1对1通话)

userid:

mediatype:

jsbridge.txrtc.call({
  //字符串,目标用户的 userid
  userid   : $("#calluserid").val(),
  //字符串,通话媒体类型
  //video 视频通话
  //audio 音频通话
  mediatype: $("#callmediatype").val()
}, function(succ, data) {
  if (!succ) {
    alert("拨打失败\n"   json.stringify(data));
  }
});

groupcall 群组通话

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));
  }
});

setcalllistener

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 类型,具体含义请参考腾讯官方文档
}
**/

removecalllistener 移除事件监听器

jsbridge.txrtc.removecalllistener(function(succ, data) {
  if (succ) {
    alert("移除成功");
  } else {
    alert("移除失败\n"   json.stringify(data));
  }
});

createchatroom 创建房间(主持人调用)

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));
  }
});

enterchatroom 进入房间(参会成员调用)

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));
  }
});

destroychatroom 解散销毁房间(主持人调用)

jsbridge.txrtc.destroychatroom(function(succ, data) {
  if (succ) {
    alert("解散成功");
  } else {
    alert("解散失败\n"   json.stringify(data));
  }
});

setchatroomlistener

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 类型,具体含义请参考腾讯官方文档
}
**/

removechatroomlistener 移除事件监听器

jsbridge.txrtc.removechatroomlistener(function(succ, data) {
  if (succ) {
    alert("移除成功");
  } else {
    alert("移除失败\n"   json.stringify(data));
  }
});

createvideoliveroom 创建房间(房主调用)

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));
    }
});

entervideoliveroom 进入房间(观众调用)

roomid:

jsbridge.txrtc.entervideoliveroom({
    //必须,数字,房间id
    roomid: parseint($("#entervideoliveroomroomid").val())
  }, function(succ, data) {
    if (!succ) {
      alert("进入失败\n"   json.stringify(data));
    }
});

setvideoliveroomlistener

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 类型,具体含义请参考腾讯官方文档
}
**/

removevideoliveroomlistener 移除事件监听器

jsbridge.txrtc.removevideoliveroomlistener(function(succ, data) {
  if (succ) {
    alert("移除成功");
  } else {
    alert("移除失败\n"   json.stringify(data));
  }
});

enterroom 进入房间 (测试 user1)

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));
    }
});

enterroom 进入房间 (测试 user2)

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));
    }
});

enterroom 进入房间 (测试 user3)

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));
    }
});

startlocalaudio 打开麦克风

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));
    }
});

stoplocalaudio 关闭麦克风

jsbridge.txrtc.stoplocalaudio(function(succ, data) {
  if (succ) {
    alert("关闭成功");
  } else {
    alert("关闭失败\n"   json.stringify(data));
  }
});

exitroom 退出房间

jsbridge.txrtc.exitroom(function(succ, data) {
  if (succ) {
    alert("退出成功");
  } else {
    alert("退出失败\n"   json.stringify(data));
  }
});

setlistener

//这是 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 类型,具体含义请参考腾讯官方文档
}
**/

removelistener 移除事件监听器

jsbridge.txrtc.removelistener(function(succ, data) {
  if (succ) {
    alert("移除成功");
  } else {
    alert("移除失败\n"   json.stringify(data));
  }
});

监听回调数据:

网站地图