API 概览

最近更新时间:2020-04-29 15:12:48

支持的平台

WebRTC 技术由 Google 最先提出,目前主要在桌面版 Chrome 浏览器、桌面版 Safari 浏览器以及移动版的 Safari 浏览器上有较为完整的支持,其他平台(例如 Android 平台的浏览器)支持情况均比较差。

  • 在移动端推荐使用 小程序 解决方案,微信和手机 QQ 小程序均已支持,都是由各平台的 Native 技术实现,音视频性能更好,且针对主流手机品牌进行了定向适配。
  • 如果您的应用场景主要为教育场景,那么教师端推荐使用稳定性更好的 Electron 解决方案,支持大小双路画面,更灵活的屏幕分享方案以及更强大而弱网络恢复能力。
操作系统 浏览器类型 最低版本要求 接收(播放) 发送(上麦)
Mac OS 桌面版 Safari 浏览器 11+ 支持 支持
Mac OS 桌面版 Chrome 浏览器 47+ 支持 支持
Windows 桌面版 Chrome 浏览器 52+ 支持 支持
Windows 桌面版 QQ 浏览器 10.2 支持 支持
iOS 移动版 Safari 浏览器 11.1.2 支持 支持
iOS 微信内嵌网页 12.1.4 支持 不支持
Android 移动版 QQ 浏览器 - 不支持 不支持
Android 移动版 UC 浏览器 - 不支持 不支持
Android 微信内嵌网页 - 不支持 不支持

API 使用指引

详细的 API 使用介绍请参见以下指引:

功能 Sample Code 指引
基础音视频通话 指引链接
互动直播 指引链接
切换摄像头和麦克风 指引链接
设置本地视频属性 指引链接
动态关闭打开本地音频或视频 指引链接
屏幕分享 指引链接
音量大小检测 指引链接
自定义采集与自定义播放渲染 指引链接
房间内上行用户个数限制 指引链接

TRTC

注意:

本文适用于4.x.x版本的 TRTC 桌面浏览器 SDK。

TRTC 是 TRTC 桌面浏览器 SDK 的主入口,通过 TRTC 方法可以创建一个实时音视频通信的客户端对象(Client)和本地音视频流对象(Stream)。TRTC 方法还可以检测浏览器的兼容性,是否支持屏幕分享,以及设置日志级别及日志上传。

API 描述
VERSION TRTC 桌面浏览器 SDK 版本号。
checkSystemRequirements 检测浏览器是否兼容 TRTC 桌面浏览器 SDK。若当前浏览器不兼容 TRTC 桌面浏览器 SDK,建议引导用户去下载最新版本的 Chrome 浏览器。
isScreenShareSupported 检测浏览器是否支持屏幕分享。在创建屏幕分享流之前请调用该方法检查当前浏览器是否支持屏幕分享。
getDevices 返回媒体输入输出设备列表。
getCameras 返回摄像头设备列表。
getMicrophones 返回麦克风设备列表。
getSpeakers 返回扬声器设备列表。
createClient 创建一个实时音视频通话的客户端对象,在每次会话中仅需要调用一次。
createStream 创建一个本地流 Stream 对象,本地流 Stream 对象通过 publish() 方法发布本地音视频流。

TRTC.Logger

提供日志设置方法,包括设置 日志输出等级、打开或关闭日志上传。

API 描述
setLogLevel 设置日志输出等级。
enableUploadLog 打开日志上传。
disableUploadLog 关闭日志上传。

Client

音视频通话客户端对象 Client 通过 createClient() 创建,代表一次音视频会话。

API 描述
setProxyServer 设置代理服务器。该方法适用于企业自己部署代理服务器,如 ngnix+coturn 方案。
setTurnServer 设置 TURN 服务器。该方法配合 setProxyServer() 使用,适用于企业自己部署代理服务器和 TURN 中转。
join 加入一个音视频通话房间,进房代表开始一个音视频通话会话。若房间不存在,系统将自动创建一个新房间。
leave 退出当前音视频通话房间,结束一次音视频通话会话。
publish 发布本地音视频流。该方法需要在 join() 进房后调用,一次音视频会话中只能发布一个本地流。
unpublish 取消发布本地流。
subscribe 订阅远端流。
unsubscribe 取消订阅远端流。
switchRole 切换用户角色,仅在 ‘live’ 互动直播模式下生效。
on 监听客户端对象事件。
getRemoteMutedState 获取当前房间内远端用户音视频 mute 状态列表。
setDefaultMuteRemoteStreams 设置是否默认接收远端流。该方法可在 join() 调用前使用,若在进房后调用,会接收不到后续进房的远端用户音视频流。
getLocalAudioStats 获取当前已发布本地流的音频统计数据。该方法需要在 publish() 后调用。
getLocalVideoStats 获取当前已发布本地流的视频统计数据。该方法需要在 publish() 后调用。
getRemoteAudioStats 获取当前所有远端流的音频统计数据。
getRemoteVideoStats 获取当前所有远端流的视频统计数据。

LocalStream

LocalStream 本地音视频流,通过 createStream 创建,是 Stream 的子类。

API 描述
initialize 初始化本地音视频流对象。
setAudioProfile 设置音频 Profile。该方法需要在调用 initialize() 之前调用。
setVideoProfile 设置视频 Profile。该方法需要在调用 initialize() 之前调用。
setScreenProfile 设置屏幕分享 Profile。该方法需要在调用 initialize() 之前调用。
setVideoContentHint 设置视频内容提示,主要用于提升在不同场景下的视频编码质量。该方法需要在调用 initialize() 成功之后调用。
switchDevice 切换媒体输入设备。
addTrack 添加音频或视频轨道。
removeTrack 移除视频轨道。
replaceTrack 更换音频或视频轨道。
play 播放该音视频流。
stop 停止播放音视频流。
resume 恢复播放音视频。
close 关闭音视频流。
muteAudio 禁用音频轨道。
muteVideo 禁用视频轨道。
unmuteAudio 启用音频轨道。
unmuteVideo 启用视频轨道。
getId 获取 Stream 唯一标识 ID。
getUserId 获取该流所属的用户 ID。
setAudioOutput 设置声音输出设备。
getAudioLevel 获取当前音量大小。只有当本地流或远端流中有音频数据才有效。
hasAudio 是否包含音频轨道。
hasVideo 是否包含视频轨道。
getAudioTrack 获取音频轨道。
getVideoTrack 获取视频轨道。
getVideoFrame 获取当前视频帧。
on 监听 Stream 事件。

RemoteStream

远端音视频流,通过监听 Client.on('stream-added') 事件获得。是 Stream 的子类。

API 描述
getType 获取远端流类型。主要用于判断一个远端流是主音视频流还是辅路视频流,辅路视频流通常是一个屏幕分享流。
play 播放该音视频流。
stop 停止播放音视频流。
resume 恢复播放音视频。
close 关闭音视频流。
muteAudio 禁用音频轨道。
muteVideo 禁用视频轨道。
unmuteAudio 启用音频轨道。
unmuteVideo 启用视频轨道。
getId 获取 Stream 唯一标识 ID。
getUserId 获取该流所属的用户 ID。
setAudioOutput 设置声音输出设备。
setAudioVolume 设置播放音量大小。
getAudioLevel 获取当前音量大小。只有当本地流或远端流中有音频数据才有效。
hasAudio 是否包含音频轨道。
hasVideo 是否包含视频轨道。
getAudioTrack 获取音频轨道。
getVideoTrack 获取视频轨道。
getVideoFrame 获取当前视频帧。
on 监听 Stream 事件。

RtcError

RtcError 错误对象。

API 描述
getCode 获取错误码。

联系我们

关注公众号"腾讯云视频",给公众号发关键字"技术支持",会有专人联系。

目录