WebApp快捷打包
腾讯 TRTC实时音视频

敬告:此 DEMO 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,了解更多

JS-SDK,下载最新版 jsBridge-v20210729.zip,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库。

腾讯云官方参考资料:

TRTC实时音视频

产品文档

服务器端API

客户端API

用腾讯平台提供的 SecretKey 在服务器端计算 UserSig

事件监听

setListener 设置监听器

• 如需接口调用事件,请设置此监听器;

//所有事件请参考 TRTCCloudListener
//详细说明 http://doc.qcloudtrtc.com/group__TRTCCloud__android.html#a22fe2f31f2ef62fb3c6cba083dc6c016
//所有事件 http://doc.qcloudtrtc.com/group__TRTCCloudListener__android.html#classcom_1_1tencent_1_1trtc_1_1TRTCCloudListener
jsBridge.trtc.setListener(function(event, data) {
  show({
    event: event,
    data : data
  });
});

//请拉到页面底部查看回调数据信息
$('html,body').animate({ scrollTop: $('#view').offset().top }, 500);

/**
回调参数说明:
event - 事件名称,字符串类型
data  - 事件数据,JSON 对象,即事件回调参数
**/

removeListener 移除监听器

//移除监听器,不会再收到回调通知
//在需要时可重新调用 setListener
jsBridge.trtc.removeListener();

房间接口

enterRoom 进入房间1 - 测试用户 A

• 需要开启文件读写、摄像头和麦克风隐私权限;

//进入房间1 - 测试用户 A
//进入房间,若房间不存在,系统将自动创建一个新房间。
//详细说明 http://doc.qcloudtrtc.com/group__TRTCCloud__android.html#abfc1841af52e8f6a5f239a846a1e5d5c
jsBridge.trtc.enterRoom({
  param: {
    //必须,数字类型,腾讯平台上创建的应用ID
    sdkAppId: 1400361045,
    //必须,字符串类型,用户ID
    userId  : "user_A",
    //必须,字符串类型,用户安全签名
    //如何计算UserSig 请参考 https://cloud.tencent.com/document/product/647/17275#Server
    userSig : "eJyrVgrxCdYrSy1SslIy0jNQ0gHzM1NS80oy0zLBwqXFqUXxjlCZ4pTsxIKCzBQlK0MTAwNjM0MDE1OITGpFQWZRqpKVsSFQzMDAACJakpkLFDM0tbAwsDAwNTCCmpKZDjTYNCkkM8jL09es0tc9z8jczCgrsjLKyS3JX7sk1dPb3cWyKqQ8IDcnKK0i3VapFgBHbDGE",
    //必须,数字类型,房间号,进入同一个房间号的用户可以共同通话
    roomId  : 1
  },
  //可选,其他设置
  extra: {
    //可选,字符串类型,房间名称(标题),默认为数字房间号,空字符串 "" 则不显示
    title    : "这是房间名称",
    //可选,布尔类型,是否横屏模式,默认 false(竖屏)(仅支持摄像头,录屏时始终为竖屏)
    landscape: false,
    //可选,布尔类型,是否录屏作为视频源,默认 false(使用摄像头),true 则录屏
    captureScreen  : false,
    //可选,数字类型,视频分辨率,默认 0(360x640),允许的值:
    //0 分辨率360x640
    //1 分辨率240x320
    //2 分辨率540x960
    //3 分辨率720x1280
    videoResolution: 0,
    //可选,布尔类型,是否使用16K音频采样率,默认 false(48K)
    audio16KSampleRate: false,
    //可选,数字类型,音量类型,默认 0(自动),允许的值:
    //0 自动
    //1 媒体
    //2 通话
    volumeType: 0,
    //可选,布尔类型,是否拒收(不接收)视频,默认 false(接收视频)
    rejectVideo  : false,
    //可选,布尔类型,是否拒收(不接收)音频,默认 false(接收音频)
    rejectAudio  : false
  }
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

enterRoom 进入房间1 - 测试用户 B

//进入房间1 - 测试用户 B
jsBridge.trtc.enterRoom({
  param: {
    sdkAppId: 1400361045,
    userId  : "user_B",
    userSig : "eJwtzEsLgkAUhuH-ctYhZ7w1CC2aAjcukqJtlGfSk1jDjNqN-nuiLr-ng-cLh2zv9dpCAr6HsBg3k763fOWRO6ftSc2Po-psDBMkIkQMYoFhND36ZdhqSAIxGCJO2nIzmIikRInLMJ4rXA7ho1Id9lS3TUTZujB*ReknkJfyYd7b4nnbVanb5KSsy1fw*wNubjKq",
    roomId  : 1
  }
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

enterRoom 进入房间1 - 测试用户 C

//进入房间1 - 测试用户 C
jsBridge.trtc.enterRoom({
  param: {
    sdkAppId: 1400361045,
    userId  : "user_C",
    userSig : "eJyrVgrxCdYrSy1SslIy0jNQ0gHzM1NS80oy0zLBwqXFqUXxzlCZ4pTsxIKCzBQlK0MTAwNjM0MDE1OITGpFQWZRqpKVsSFQzMDAACJakpkLFDM0tbAwsDAwN7eEmpKZDjQ4Kzfd2SLKPEvbyz*qIjw9J9fT2Diz3EPb29KkxMk8L1I7yz-ItVQ-Lc001FapFgBTWTEi",
    roomId  : 1
  }
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

enterRoom 进入房间2 - 测试用户 A

//进入房间2 - 测试用户 A
jsBridge.trtc.enterRoom({
  param: {
    sdkAppId: 1400361045,
    userId  : "user_B",
    userSig : "eJyrVgrxCdYrSy1SslIy0jNQ0gHzM1NS80oy0zLBwqXFqUXxjlCZ4pTsxIKCzBQlK0MTAwNjM0MDE1OITGpFQWZRqpKVsSFQzMDAACJakpkLFDM0tbAwsDAwNTCCmpKZDjTYNCkkM8jL09es0tc9z8jczCgrsjLKyS3JX7sk1dPb3cWyKqQ8IDcnKK0i3VapFgBHbDGE",
    roomId  : 123
  }
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

enterRoom 进入房间2 - 测试用户 B

//进入房间2 - 测试用户 B
jsBridge.trtc.enterRoom({
  param: {
    sdkAppId: 1400361045,
    userId  : "user_B",
    userSig : "eJwtzEsLgkAUhuH-ctYhZ7w1CC2aAjcukqJtlGfSk1jDjNqN-nuiLr-ng-cLh2zv9dpCAr6HsBg3k763fOWRO6ftSc2Po-psDBMkIkQMYoFhND36ZdhqSAIxGCJO2nIzmIikRInLMJ4rXA7ho1Id9lS3TUTZujB*ReknkJfyYd7b4nnbVanb5KSsy1fw*wNubjKq",
    roomId  : 123
  }
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

enterRoom 进入房间2 - 测试用户 C

//进入房间2 - 测试用户 C
jsBridge.trtc.enterRoom({
  param: {
    sdkAppId: 1400361045,
    userId  : "user_C",
    userSig : "eJyrVgrxCdYrSy1SslIy0jNQ0gHzM1NS80oy0zLBwqXFqUXxzlCZ4pTsxIKCzBQlK0MTAwNjM0MDE1OITGpFQWZRqpKVsSFQzMDAACJakpkLFDM0tbAwsDAwN7eEmpKZDjQ4Kzfd2SLKPEvbyz*qIjw9J9fT2Diz3EPb29KkxMk8L1I7yz-ItVQ-Lc001FapFgBTWTEi",
    roomId  : 123
  }
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

enterRoom 进入房间2 - 测试用户 C:横屏模式

//横屏模式
jsBridge.trtc.enterRoom({
  param: {
    sdkAppId: 1400361045,
    userId  : "user_C",
    userSig : "eJyrVgrxCdYrSy1SslIy0jNQ0gHzM1NS80oy0zLBwqXFqUXxzlCZ4pTsxIKCzBQlK0MTAwNjM0MDE1OITGpFQWZRqpKVsSFQzMDAACJakpkLFDM0tbAwsDAwN7eEmpKZDjQ4Kzfd2SLKPEvbyz*qIjw9J9fT2Diz3EPb29KkxMk8L1I7yz-ItVQ-Lc001FapFgBTWTEi",
    roomId  : 123
  },
  extra: {
    landscape: true
  }
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

enterRoom 进入房间2 - 测试用户 C:录屏

//录屏
jsBridge.trtc.enterRoom({
  param: {
    sdkAppId: 1400361045,
    userId  : "user_C",
    userSig : "eJyrVgrxCdYrSy1SslIy0jNQ0gHzM1NS80oy0zLBwqXFqUXxzlCZ4pTsxIKCzBQlK0MTAwNjM0MDE1OITGpFQWZRqpKVsSFQzMDAACJakpkLFDM0tbAwsDAwN7eEmpKZDjQ4Kzfd2SLKPEvbyz*qIjw9J9fT2Diz3EPb29KkxMk8L1I7yz-ItVQ-Lc001FapFgBTWTEi",
    roomId  : 123
  },
  extra: {
    captureScreen  : true,
    videoResolution: 3
  }
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

exitRoom 离开房间

//离开房间
//详细说明 http://doc.qcloudtrtc.com/group__TRTCCloud__android.html#a41d16a97a9cb8f16ef92f5ef5bfebee1
jsBridge.trtc.exitRoom(function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

网络测试

startSpeedTest 开始进行网络测速

//开始进行网络测速
//请先调用 setListener 接口,在回调参数 data.event == "onSpeedTest" 中获取测试结果;
//详细说明 http://doc.qcloudtrtc.com/group__TRTCCloud__android.html#a0dbceb18d61d99ca33e967427dd0a344
jsBridge.trtc.startSpeedTest({
  sdkAppId: 1400361045,
  userId  : "user_A",
  userSig : "eJyrVgrxCdYrSy1SslIy0jNQ0gHzM1NS80oy0zLBwqXFqUXxjlCZ4pTsxIKCzBQlK0MTAwNjM0MDE1OITGpFQWZRqpKVsSFQzMDAACJakpkLFDM0tbAwsDAwNTCCmpKZDjTYNCkkM8jL09es0tc9z8jczCgrsjLKyS3JX7sk1dPb3cWyKqQ8IDcnKK0i3VapFgBHbDGE",
}, function(succ, data) {
  if (succ) {
    alert("已开始");
  } else {
    alert(JSON.stringify(data));
  }
});

stopSpeedTest 停止服务器测速

//停止服务器测速
//详细说明 http://doc.qcloudtrtc.com/group__TRTCCloud__android.html#a3e862cef0e818ddecdc3dc4d66a6f8f9
jsBridge.trtc.stopSpeedTest(function(succ, data) {
  if (succ) {
    alert("已停止");
  } else {
    alert(JSON.stringify(data));
  }
});

其他

getSDKVersion 获取 SDK 版本信息

//获取 SDK 版本信息
jsBridge.trtc.getSDKVersion(function(succ, data) {
  alert(JSON.stringify(data));
});

监听回调数据: