CloudHub 文档中心
下载中心 文档中心

RTC 实时音视频


CloudHub JSSDK

CloudHub 通过全球部署的虚拟网络,提供可以灵活搭配的 API 组合,为移动端到移动端以及移动端到 Web 端提供质量可靠的实时音视频通信。

在您阅读接口文档时,我们假定您已经具备了基础的前端应用开发经验,并能够理解相关基础概念。

CloudHubRTC 的概览

CloudHub JSSDK 是通过 HTML 网页加载的 JavaScript 库。CloudHub JSSDK 库在网页浏览器中调用 API 建立连接,控制音视频通话和直播服务。 CloudHub JSSDK 支持所有的主流浏览器,详见 浏览器支持

请务必使用 HTTPS 协议或者 localhost,否则会报错 NOT_SUPPORT。

关于如何导入 SDK,详见 快速开始 的 SDK 导入部分。

CloudHubRTC 是 CloudHub JSSDK 中所有可调用方法的入口。CloudHubRTC 包含以下方法:

方法描述
createClient用于创建客户端,在每次会话里仅调用一次。
createStream创建并返回音视频流对象。
getDeviceManager获取设备管理类。
setSdkLogConfig设置 sdk 内部日志打印的配置。
checkSystemRequirements检查 JSSDK 对正在使用的浏览器的适配情况。

Client 客户端对象

基础

方法描述
init初始化客户端对象。
renewToken更新 Token。

频道管理

方法描述
setChannelConfig设置通道配置。
joinChannel加入 CloudHubRTC 频道。
leaveChannel离开 CloudHubRTC 频道。
produceChannelMediaRelayConfig生产跨频道媒体转发配置实例。

音视频管理

方法描述
publish发布本地音视频流。
subscribe订阅远端音视频流。
unpublish取消发布本地音视频流。
unsubscribe取消订阅远端音视频流。
enableAudioVolumeIndicator启用说话者音量提示。
getSignalConnectionState获取 SDK 与信令服务器的连接状态。
getLocalAudioStats获取本地发布流的音频统计数据。
getLocalVideoStats获取本地发布流的视频统计数据。
getRemoteAudioStats获取远端订阅流的音频统计数据。
getRemoteVideoStats获取远端订阅流的视频统计数据。

事件管理

方法描述
off取消事件绑定。
on进行事件绑定。
offAll取消指定类型下的所有事件绑定。

用户管理

方法描述
evictUser将用户踢出频道。
setProperty改变用户的自定义用户属性。
setClientRole设置用户角色。

消息管理

方法描述
sendChatMsg发送聊天消息。

信令管理

方法描述
pubMsg发送信令消息。
delMsg删除信令消息。

录制管理

方法描述
startServerRecord开始服务器端录制。
stopServerRecord停止服务器端录制。
pauseServerRecord暂停服务器端录制。
resumeServerRecord恢复服务器端录制。

推流管理

方法描述
addPublishStreamUrl增加旁路推流地址。
removePublishStreamUrl删除旁路推流地址。
setLiveTranscoding设置直播推流转码。
startChannelMediaRelay开始跨频道媒体流转发。
updateChannelMediaRelay更新跨频道媒体流转发。
stopChannelMediaRelay停止跨频道媒体流转发。
enableMultiStream启用多流模式。

使用 CloudHub JSSDK 的第一步就是调用 createClient 创建客户端对象。 客户端对象提供音视频通话的核心功能,例如加入频道、发布和订阅音视频流等。下表列出 Client 的所有方法:

Stream 音视频流对象

音视频流对象指通话中的本地或远程音视频流,提供对音视频流的设置。下表列出 Stream 的所有方法:

基础

方法描述
init初始化音视频对象。

事件管理

方法描述
on进行事件绑定。
off取消事件绑定。
offAll取消指定类型下的所有事件绑定。

音频管理

方法描述
hasAudio获取音频 flag。
muteAudio禁用音频轨道。
getAudioLevel获取当前音量。
getAudioTrack获取音频轨道。
setAudioOutput设置音频输出。
setAudioVolume调节音量大小。
unmuteAudio启用音频轨道。
playAudio播放音频流。
resumeAudio恢复音频流播放。
unplayAudio停止音频流。
getAudioVolume获取音量大小。

视频管理

方法描述
hasVideo获取视频 flag。
muteVideo禁用视频轨道。
setVideoProfile设置视频属性。
unplayVideo停止视频流。
isVideoPlaying返回视频流当前是否在播放状态。
playVideo播放视频流。
replaceTrack替换音视频轨道。
resumeVideo恢复视频流播放。
getVideoTrack获取视频轨道。
close关闭音视频流。
getStats获取连接数据。
getId获取音视频流 ID。
unmuteVideo启用视频轨道。
isPubedVideo流的发布者是否发布视频。
getVideoProfile获取视频属性。
isAudioPlaying返回音频流当前是否在播放状态。
isRemote是否是远端流。
getUserId获取该流的用户 id。
getType获取该流的类型。
getSourceID获取该流的 sourceID。
switchMobileCamera切换移动端前后摄像头。
setMirror设置是否使用镜像。

设备管理

方法描述
switchDevice切换输入设备。

DeviceManager 设备管理对象

设备管理对象提供对设备进行的操作的方法,例如枚举设备、设备检测等。下表列出 DeviceManager 的所有方法:

基础

方法描述
getDevices枚举可用的媒体输入 / 输出设备,比如麦克风、摄像头、扬声器等。
registerDeviceChangeListener注册 / 移除设备监听器。
getUserMedia浏览器 navigator.mediaDevices.getUserMedia 的封装,SDK 内部对 navigator.mediaDevices.getUserMedia 进行了一些浏览器适配

麦克风

方法描述
startMicrophoneTest开始进行麦克风设备检测。
stopMicrophoneTest停止进行麦克风设备检测。
setDefaultMicrophoneId设置默认的麦克风 id。
getDefaultMicrophoneId获取默认的麦克风 id

摄像头

方法描述
startCameraTest开始进行摄像头检测。
stopCameraTest停止进行摄像头检测。
setDefaultCameraId设置默认的摄像头 id。
getDefaultCameraId获取默认的摄像头 id

扬声器

方法描述
startSpeakerTest开始进行扬声器设备检测。
stopSpeakerTest停止进行扬声器设备检测。
setDefaultSpeakerId设置默认的扬声器 id。
associateElementsToSpeaker关联媒体元素节点 (video/audio) 到扬声器。

桌面共享

方法描述
checkScreenIsSupport检测屏幕 / 程序共享是否需要谷歌插件。

音视频

方法描述
getCameras枚举视频输入设备。
getSpeakers枚举音频输出设备。
getMicrophones枚举音频输入设备。
getVideoTrack获取视频轨道。
getAudioTrack获取音频轨道。
setDefaultVideoProfile设置默认的视频属性。
getDefaultSpeakerId获取默认的扬声器 id
audioEleTestPlay音频节点播放测试 (主要用于检测浏览器能否允许音频元素播放 — 有些浏览器会阻止音频元素非人为点击的播放)。

事件

通过 Client.on 和 Stream.on 方法监听 Client 和 Stream 方法触发的事件。

频道的使用场景(通信场景 | 直播场景)

频道的使用场景,有通信场景 (rtc) 和直播场景 (live) 两种,缺省为”rtc”,详细请看接口文档的 常量声明以及补充说明——频道的使用场景说明

Note:

直播场景下调用 Clinet.publish 和 Client.unpublish 会自动切换用户身份,详情参考 Client.setClientRoleClient.publishClient.unpublish 的接口说明。

相关文档