### 腾讯云实时音视频通话 TRTC CALLING SDK [TRTCCalling](https://www.npmjs.com/package/trtc-calling-js) 组件,是我们基于腾讯云 Web 版的 [TRTC SDK](https://trtc-1252463788.file.myqcloud.com/web/docs/TRTC.html) 和 [信令(TSignalling) SDK](https://webim-1252463788.cos.ap-shanghai.myqcloud.com/tsignaling/TSignaling.html) 组合而成的一个功能组件,用于支持双人和多人场景下的音视频通话通能。 #### 接入方式 > 从v0.6.0起,需要手动安装依赖 [trtc-js-sdk](https://www.npmjs.com/package/trtc-js-sdk) 和 [tim-js-sdk](https://www.npmjs.com/package/tim-js-sdk) 以及 [tsignaling](https://www.npmjs.com/package/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 <script src="./trtc.js"></script> // 接着手动引入 tim-js.js <script src="./tim-js.js"></script> // 然后再手动引入 tsignaling.js <script src="./tsignaling.js"></script> // 最后再手动引入 trtc-calling-js.js <script src="./trtc-calling-js.js"></script> ``` ### API list | API | 含义 | | :-------------------------------- | :----------------- | | new TRTCCalling(params) | 初始化 SDK | | setLogLevel(level) | 设置日志级别 | | on(eventName, callback, context) | 监听事件 | | off(eventName, callback, context) | 取消监听事件 | | login(params) | 登录 | | logout() | 登出 | | call(params) | 邀请通话 | | groupCall(params) | 邀请群通话 | | accept(params) | 接受通话邀请 | | reject(params) | 拒绝通话邀请 | | hangup() | 挂断 | | startRemoteView(params) | 启动远端画面渲染 | | stopRemoteView(params) | 停止远端画面渲染 | | startLocalView(params) | 启动本地画面渲染 | | stopLocalView(params) | 停止本地画面渲染 | | openCamera() | 启动摄像头 | | closeCamera() | 关闭摄像头 | | setMicMute(isMute) | 设备麦克风是否静音 | | setVideoQuality(profile) | 设置视频质量 | | switchToAudioCall() | 视频通话切换语音通话 | | switchToVideoCall() | 语音通话切换视频通话 | | getCameras() | 获取摄像头设备列表 | | getMicrophones() | 获取麦克风设备列表 | | switchDevice() | 切换摄像头或麦克风设备 | ### event list | event | 含义 | | :----------------------------------------------- | :------------------------ | | TRTCCalling.EVENT.INVITED, | 收到邀请通知 | | TRTCCalling.EVENT.REJECT, | 被邀用户拒绝通话 | | TRTCCalling.EVENT.NO_RESP, | 被邀用户超时无应答 | | TRTCCalling.EVENT.LINE_BUSY, | 被邀用户正在通话中,忙线 | | TRTCCalling.EVENT.CALLING_CANCEL, | 本次通话被取消了 | | TRTCCalling.EVENT.CALLING_TIMEOUT, | 本次通话超时未应答 | | TRTCCalling.EVENT.CALLING_END, | 本次通话结束 | | TRTCCalling.EVENT.USER_ENTER, | 用户进入通话 | | TRTCCalling.EVENT.USER_LEAVE, | 用户离开通话 | | TRTCCalling.EVENT.KICKED_OUT, | 重复登录,被踢出 | | TRTCCalling.EVENT.USER_VIDEO_AVAILABLE, | 远端用户开启/关闭了摄像头 | | TRTCCalling.EVENT.USER_AUDIO_AVAILABLE, | 远端用户开启/关闭了麦克风 | | TRTCCalling.EVENT.SDK_READY, | SDK 进入 ready 状态 | | TRTCCalling.EVENT.SDK_NOT_READY, | SDK 没有 ready 状态 | | TRTCCalling.EVENT.GROUP_CALL_INVITEE_LIST_UPDATE | 群聊更新邀请列表 | ### Error code | code | 错误类型 | 含义 | | :----------------- | :---------------- | :------------------------------ | | 60001 | 方法调用失败 | switchToAudioCall 调用失败 | | 60002 | 方法调用失败 | switchToVideoCall 调用失败 | | 60003 | 权限获取失败 | 没有可用的麦克风设备 | | 60004 | 权限获取失败 | 没有可用的摄像头设备 | | 60005 | 权限获取失败 | 用户禁止使用设备 | ### 参考文档 - [腾讯实时音视频 TRTC](https://cloud.tencent.com/document/product/647/16788) - [腾讯云即时通信 IM](https://cloud.tencent.com/document/product/269/1498) - [TSignaling API](https://web.sdk.qcloud.com/component/tsignaling/doc/zh-cn/TSignaling.html) - [TRTCCalling API](https://web.sdk.qcloud.com/component/trtccalling/doc/web/zh-cn/TRTCCalling.html)