![]() |
há 2 anos atrás | |
---|---|---|
public | há 3 anos atrás | |
src | há 3 anos atrás | |
static | há 3 anos atrás | |
.env.development | há 3 anos atrás | |
.env.production | há 2 anos atrás | |
.gitignore | há 3 anos atrás | |
README.md | há 3 anos atrás | |
babel.config.js | há 3 anos atrás | |
package-lock.json | há 3 anos atrás | |
package.json | há 3 anos atrás | |
trtc-calling-web.rar | há 3 anos atrás | |
vue.config.js | há 3 anos atrás |
本文主要介绍如何快速跑通 Web 版本的 TRTCCalling Demo,Demo 中包括语音通话和视频通话场景:
- 语音通话:纯语音交互,支持多人互动语音聊天。
- 视频通话:视频通话,面向在线客服等需要面对面交流的沟通场景。
- 一般情况下体验 Demo 需要部署至服务器,通过 https://域名/xxx 访问,或者直接在本地搭建服务器,通过 localhost:端口访问。
- 目前桌面端 Chrome 浏览器支持 TRTC 桌面浏览器 SDK 的相关特性比较完整,因此建议使用 Chrome 浏览器进行体验。
登录实时音视频控制台,选择【开发辅助】>【快速跑通Demo】。
单击【立即开始】,输入应用名称,例如TestTRTC
,单击【创建应用】。
解压 步骤2 中下载的源码包。
找到并打开Web/TRTCScenesDemo/TRTCCalling/public/debug/GenerateTestUserSig.js
文件。
设置GenerateTestUserSig.js
文件中的相关参数:
返回实时音视频控制台,单击【粘贴完成,下一步】。
单击【关闭指引,进入控制台管理应用】。
本文提到的生成 UserSig 的方案是在客户端代码中配置 SECRETKEY,该方法中 SECRETKEY 很容易被反编译逆向破解,一旦您的密钥泄露,攻击者就可以盗用您的腾讯云流量,因此*该方法仅适合本地跑通 Demo 和功能调试*。
正确的 UserSig 签发方式是将 UserSig 的计算代码集成到您的服务端,并提供面向 App 的接口,在需要 UserSig 时由您的 App 向业务服务器发起请求获取动态 UserSig。更多详情请参见 服务端生成 UserSig。
- 同步依赖: npm install
- 启动项目: npm run serve
- 浏览器中打开链接:http://localhost:8080/
NPM 集成
从v0.6.0起,需要手动安装依赖 trtc-js-sdk 和 tim-js-sdk 以及 tsignaling
- 为了减小 trtc-calling-js.js 的体积,避免和接入侧已使用的 trtc-js-sdk 和 tim-js-sdk 以及 tsignaling 发生版本冲突,trtc-js-sdk 和 tim-js-sdk 以及 tsignaling 不再被打包到 trtc-calling-js.js,在使用前您需要手动安装依赖。 ```javascript npm i trtc-js-sdk --save npm i tim-js-sdk --save npm i tsignaling --save npm i trtc-calling-js --save
// 如果您通过 script 方式使用 trtc-calling-js,需要按顺序先手动引入 trtc.js
// 接着手动引入 tim-js.js
// 然后再手动引入 tsignaling.js
// 最后再手动引入 trtc-calling-js.js
在项目脚本里引入模块 ```javascript import TrtcCalling from 'trtc-calling-js';
步骤2:创建 trtcCalling 对象
- sdkAppID: 您从腾讯云申请的 sdkAppID
javascript let options = { SDKAppID: 0 // 接入时需要将0替换为您的云通信应用的 SDKAppID }; const trtcCalling = new TRTCCalling(options);
- userID: 用户 ID
- userSig: 用户签名,计算方式参见如何计算 userSig
javascript trtcCalling.login({ userID, userSig });
拨打:
- userID: 用户 ID
- type: 通话类型,0-未知, 1-语音通话,2-视频通话
timeout: 邀请超时, 单位 s(秒)
trtcCalling.call({ userID, type: 2, timeout });
接听
inviteID: 邀请 ID, 标识一次邀请
roomID: 通话房间号 ID
callType: 0-未知, 1-语音通话,2-视频通话
trtcCalling.accept({ inviteID, roomID, callType });
打开本地摄像头
trtcCalling.openCamera()
展示远端画面
userID: 远端用户 ID
videoViewDomID: 该用户数据将渲染到该 DOM ID 节点里
trtcCalling.startRemoteView({ userID, videoViewDomID })
展示本地画面
- userID: 本地用户 ID
- videoViewDomID: 该用户数据将渲染到该 DOM ID 节点里
javascript trtcCalling.startLocalView({ userID, videoViewDomID })
挂断/拒接
trtcCalling.hangup()
- inviteID: 邀请 id,标识一次邀请
- isBusy: 是否是忙线中, 0-未知, 1-语音通话,2-视频通话
javascript trtcCalling.reject({ inviteID, isBusy })
操作系统 | 浏览器类型 | 浏览器最低版本要求 |
---|---|---|
Mac OS | 桌面版 Safari 浏览器 | 11+ |
Mac OS | 桌面版 Chrome 浏览器 | 56+ |
Windows | 桌面版 Chrome 浏览器 | 56+ |
Windows | 桌面版 QQ 浏览器 | 10.4 |
TRTC SDK 6.6 版本(2019年08月)开始启用新的签名算法 HMAC-SHA256。在此之前已创建的应用,需要先升级签名算法才能获取新的加密密钥。如不升级,您也可以继续使用 老版本算法 ECDSA-SHA256,如已升级,您按需切换为新旧算法。
升级/切换操作:
登录 实时音视频控制台。
在左侧导航栏选择【应用管理】,单击目标应用所在行的【应用信息】。
选择【快速上手】页签,单击【第二步 获取签发 UserSig 的密钥】区域的【点此升级】、【非对称式加密】或【HMAC-SHA256】。
由于 SDK 使用 UDP 协议进行音视频传输,所以对 UDP 有拦截的办公网络下无法使用,如遇到类似问题,请参考文档:应对公司防火墙限制。