TRTCCalling 小程序组件是基于腾讯云实时音视频(TRTC)和腾讯云信令 SDK(TSignalling)组合而成,支持1V1,多人场景下的视频通话。TRTCCalling 是一个开源组件,依赖闭源的信令 SDK(TSignalling)进行状态管理,通过 C2C 通信,完成信令传递。组件可快速服务线上客服,咨询,医疗问诊,跨端实时通话等应用场景。您可前往 【Github】或单击 【ZIP】,下载相关 SDK 及配套的 Demo 源码。
本组件基于事件分发进行管理,应用层可以根据组件下发的事件进行上层交互的改变。
API | 描述 |
---|---|
on(eventCode, handler, context) | 订阅事件。 |
off(eventCode, handler) | 取消事件订阅。 |
邀请方拨打后,会收到该邀请的对端处理结果,详情可在 事件表 查询。
API | 描述 |
---|---|
call({userID, type}) | 发出 C2C 通话邀请。 |
groupCall({userIDList, type, groupID}) | 群组邀请通话(请先 创建 IM 群组)。 |
被邀请方如果超过30s对邀请为做出处理,将会做超时处理。
API | 描述 |
---|---|
accept() | 接受通话邀请。 |
reject() | 拒绝通话邀请。 |
API | 描述 |
---|---|
login() | 初始化信令 SDK,执行后才能正常进行信令收发。 |
logout() | 登出信令 SDK,执行后不再能收发信令。 |
hangup() | 结束当前通话。 |
startRemoteView(userID) | 开启远端画面渲染。 |
stopRemoteView(userID) | 关闭远端画面渲染。 |
openCamera() | 开启摄像头。 |
closeCamera() | 关闭摄像头。 |
setMicMute(isMute) | 设置麦克风状态。 |
switchCamera(isFrontCamera) | 选择摄像头。 |
setHandsFree(isHandsFree) | 设置声音播放状态。 |
<trtccalling>
只有 config 一个属性,通过该属性传入以下参数:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
sdkAppID | String | 是 | 开通实时音视频服务创建应用后分配的 SDKAppID。 |
userID | String | 是 | 用户 ID,可以由您的帐号体系指定。 |
userSig | String | 是 | 身份签名(即相当于登录密码),由 userID 计算得出,具体计算方法请参见 如何计算 UserSig。 |
type | Number | 是 | 指定通话类型。1:语音通话,2:视频通话。 |
示例代码:
// index.wxml
<TRTCCalling id="TRTCCalling-room" config="{{config}}"></TRTCCalling>
// videocall.js
trtcConfig = {
sdkAppID: '1401000123', // 开通实时音视频服务创建应用后分配的 SDKAppID
userID: 'test_user_001', // 用户 ID,可以由您的帐号系统指定
userSig: 'xxxxxxxxxxxx', // 身份签名,相当于登录密码的作用
type: 2, // 通话模式
}
您可以通过小程序提供的 this.selectComponent()
方法获取组件实例。
let TRTCCallingContext = this.selectComponent('#TRTCCalling-room')
TRTCCallingContext.login()
登入接口,会建议在页面 onLoad 阶段调用。
TRTCCallingContext.login()
登出信令 SDK,执行后不再能收发信令。
TRTCCallingContext.logout()
用于监听组件派发的事件,详细事件请参见 事件表。
TRTCCallingContext.on(EVENT.INVITED, () => {
// todo
})
用于取消事件监听。
TRTCCallingContext.off(EVENT.INVITED)
进行某个 user 进行呼叫。
参数 | 含义 |
---|---|
type | 通话类型,type = 1:语音通话,type =2:视频通话。 |
let userID = 'test'
let type = 2
TRTCCallingContext.call({userID, type})
在调用该接口前需要使用 IM 创建群组,并将 groupID 作为参数传入。
参数 | 类型 | 含义 |
---|---|---|
userIDList | Arrary | 拨打的用户列表 |
type | Number | type 为通话类型,1:语音通话,2:视频通话。 |
grouID | String | IM 群组的 groupID。 |
TRTCCallingContext.groupCall({userIDList, type, groupID})
当收到邀请后,调用该接口将接受当前的邀请。
说明:当上一个 invitation 未处理完成时,组件会默认占线,之后的邀请都会回复忙线。
TRTCCallingContext.on(EVENT.INVITED, () => {
TRTCCallingContext.accept()
})
当收到邀请后,调用该接口将拒绝当前收到的邀请。
TRTCCallingContext.on(EVENT.INVITED, () => {
TRTCCallingContext.reject()
})
结束当前通话。
TRTCCallingContext.hangup()
开启指定 userID 的远端画面 (默认开启)。
TRTCCallingContext.startRemoteView(userID)
关闭指定 userID 的远端画面。
TRTCCallingContext.stopRemoteView(userID)
开启本地摄像头。
TRTCCallingContext.openCamera()
关闭摄像头。
TRTCCallingContext.closeCamera()
设置麦克风状态。
参数 | 含义 |
---|---|
isMute | true:关闭麦克风,false: 打开麦克风。 |
TRTCCallingContext.setMicMute(true) // 开启麦克风
选择摄像头。
参数 | 含义 |
---|---|
isFrontCamera | true:前置摄像头,false: 后置摄像头。 |
TRTCCallingContext.switchCamera(true) // 开启前置摄像头
设置声音播放状态。
参数 | 含义 |
---|---|
isHandsFree | true:外放模式,false: 听筒模式。 |
TRTCCallingContext.setHandsFree(true) // 开启外放模式
获取 EVENT 事件。
const TRTCCallingContext = this.selectComponent('#TRTCCalling-room')
const EVENT = trtcRoomContext.EVENT // 以下事件均在此EVENT对象下
邀请方发出的邀请被拒绝。
参数 | 类型 | 含义 |
---|---|---|
invitee | String | 被邀请人。 |
inviteID | String | 邀请 ID。 |
reason | String | 拒绝理由。 |
邀请方发出的邀请无人响应(对方不在线)。
参数 | 类型 | 含义 |
---|---|---|
inviteID | String | 邀请 ID。 |
timeoutUserList | Array | 超时用户列表。 |
邀请方发出的邀请无人响应(在线未接受邀请)。
参数 | 类型 | 含义 |
---|---|---|
inviteID | String | 邀请 ID。 |
timeoutUserList | Array | 超时用户列表。 |
groupID | String | 群组 ID。 |
sponsor | String | 邀请者。 |
被邀请方正在通话中,忙线。
参数 | 类型 | 含义 |
---|---|---|
invitee | String | 被邀请人。 |
inviteID | String | 邀请 ID。 |
reason | String | 拒绝理由。 |
接受的邀请被取消。
参数 | 类型 | 含义 |
---|---|---|
invitee | String | 被邀请人。 |
inviteID | String | 邀请 ID。 |
收到邀请通知。
参数 | 类型 | 含义 |
---|---|---|
sponsor | String | 邀请人。 |
isFromGroup | Boolean | 是否是群通话。 |
inviteID | String | 邀请 ID。 |
inviteData | Object |
接受的邀请被取消。
参数 | 类型 | 含义 |
---|---|---|
invitee | String | 被邀请人。 |
inviteID | String | 邀请 ID。 |
用户进房。
参数 | 类型 | 含义 |
---|---|---|
userID | String | 加入的用户。 |
用户退出房间。
参数 | 类型 | 含义 |
---|---|---|
userID | String | 离开的用户。 |
本次通话结束。
参数 | 类型 | 含义 |
---|---|---|
call_end | String | 通话结束事件。 |
本地和远端用户的音量回调。
参数 | 类型 | 含义 |
---|---|---|
userID | String | 通话人。 |
volume | Number | 音量。 |
挂断电话。
通过监听 EVENT 里的 ERROR 字段,对组件抛出的错误进行处理。
let EVENT = trtcRoomContext.EVENT
trtcRoomContext.on(EVENT.ERROR,(event)=>{
console.log(event.data)
})
组件暂不支持多实例登入,不支持离线推送信令功能,请您确认账号登入的唯一性。
每日集成开发者社区精品内容,你错过的干货补给站 每日精选博文推荐 快速了解云...
问题现象 invalid call is removed because of connection closed 可能原因 网络...
前言 Javascript的数据类型对于大家来说一点都不默认,主要基本数据局类型和引用...
本文转载自微信公众号「码农读书」,作者码农读书。转载本文请联系码农读书公众...
部署点是云盒部署的物理位置,用来放置云盒的硬件基础设施,如您本地的机房。在...
2021年7月20日,一场暴雨打破了一座城市的宁静。短短24小时,就让这座黄河边上的...
云服务器 升级的价格? 云服务器 的升级费用主要是由其配置决定的,所需要的升级...
虚拟服务器对于很多站长来说使用者越来越少了,因为其需要备案,不稳定等原因。...
随着经济的发展,国内推广在网络中,很多的公司还是依靠优化来实现的,不管是PC...
来源:香港国际仲裁中心 HKIAC 活动详情 日 期:2020年10月12日 语 言:中文普通...