RoomID 即房间号,用于唯一标识一个房间。房间号取值区间为1 - 4294967295,由开发者自行维护和分配。
UserID 即用户ID,用于在一个实时音视频应用中唯一标识一个用户。取值范围长度建议不超过32字节。请使用英文字母、数字或下划线,区分大小写。
- 第一个加入房间的用户为当前房间的所有者,但该用户无法主动解散房间。
- 通话模式下:所有用户都主动退房时,后台立即解散房间。
- 直播模式下:最后一个退房的用户是主播角色时,后台立即解散房间;最后一个退房的用户是观众角色时,后台等待10分钟后解散房间。
- 如果房间内的单个用户异常掉线,90秒后服务端会将该用户清理出当前房间。如果房间内的所有用户都异常掉线,90秒后服务端会自动解散当前房间。用户异常掉线等待时长会被纳入计费用时统计。
- 当用户要加入的房间不存在时,后台会自动创建一个房间。
为了实现“秒开”效果,默认是进房自动订阅流,可以通过 setDefaultStreamRecvMode 接口切换手动订阅模式。
支持,您可以通过 enterRoom 的参数 TRTCParams 指定 streamId,也可以调用 startPublishing 接口传参数 streamId。
直播场景(TRTCAppSceneLIVE 和 TRTCAppSceneVoiceChatRoom)支持 TRTCRoleAnchor(主播)和 TRTCRoleAudience(观众)两种角色,区别是主播角色可以同时上行、下行音视频数据,观众角色只支持下行播放其他人的数据。您可以通过调用 switchRole() 进行角色切换。
只有在直播场景下,可以设置主播和观众角色。主播角色 TRTCRoleAnchor 具有上行和下行音视频的权限,最高并发支持50人,观众 TRTCRoleAudience 只具有下行音视频的权限,最高并发支持10万人。
支持以下场景:
- TRTCAppSceneVideoCall :视频通话场景,适合1对1视频通话、300人视频会议、在线问诊、视频聊天、远程面试等。
- TRTCAppSceneLIVE :视频互动直播,适合视频低延时直播、十万人互动课堂、视频直播 PK、视频相亲房、互动课堂、远程培训、超大型会议等。
- TRTCAppSceneAudioCall :语音通话场景,适合1对1语音通话、300人语音会议、语音聊天、语音会议、在线狼人杀等。
- TRTCAppSceneVoiceChatRoom:语音互动直播,适合:语音低延时直播、语音直播连麦、语聊房、K 歌房、FM 电台等。
支持的平台包括 iOS、Android、Windows(C++)、Windows(C#)、Mac、Web、Electron、微信小程序,更多详情请参见 平台支持。
详情请参见 各版本差异对照表。
支持,具体操作指南请参考:
支持同时并发存在4294967294个房间,累计房间数量无限制。
房间是由腾讯云后台在客户端进房时自动创建的,您无需手动创建房间,只需调用客户端的相关接口“进入房间”即可:
- iOS & Mac > enterRoom
- Android > enterRoom
- Windows(C++) > enterRoom
- Windows(C#) > enterRoom
- Electron > enterRoom
- Web > join
- 小程序 > enterRoom
没有限制。
实时音视频私有化部署未完全开放。若您需咨询或使用私有化服务,请填写 私有化问卷。我们会在2个-3个工作日内完成评估并反馈结果。 私有化客户端限制:支持原生 SDK(iOS、Mac、Android 和 Windows),支持 WebRTC,不支持小程序。
如需开通旁路直播,依据国家相关部门要求,播放域名需要备案才能使用,更多详情请参见 CDN 直播观看。
全球端到端平均延时小于300ms。
需要结合信令通道解决,例如使用 即时通信 IM 服务的自定义消息实现呼叫,可以参考 SDK 源码中的场景化 Demo 示例。
支持。
支持,您可以参考如下文档:
屏幕分享接口详情请参见 Windows(C++)API 或 Windows(C#)API。另外,您也可以使用 Electron 接口。
因公众号限制,建议在微信中使用 小程序端 SDK 获得更好的使用体验。
支持,可以通过 自定义采集 功能来实现。
不支持直接存储在手机本地,录制后视频文件默认存储在云点播平台,您可以自行下载并保存到手机中,更多详情请参见 云端录制和回放。
支持纯音频。
目前一个房间只能有一路辅流的屏幕分享。
默认情况下,SDK 内部会自动根据分享的窗口大小进行编码参数的调整。 如需固定分辨率,需调用 setSubStreamEncoderParam 接口设置屏幕分享的编码参数,或在调用 startScreenCapture 时指定对应的编码参数。
支持,您可以通过 SDK 的视频编码参数 setVideoEncoderParam 对分辨率进行设置。
部分平台支持,详细信息请参见 自定义采集和渲染。
不可以。
TRTC 与移动直播后台方案架构不同,所以不支持直接相互通信,仅可从 TRTC 后台旁路推流到 CDN。
TRTC 支持四种不同的进房模式,其中视频通话(VideoCall)和语音通话(VoiceCall)统称为通话模式,视频互动直播(Live)和语音互动直播(VoiceChatRoom)统称为 直播模式。
- 通话模式下的 TRTC,支持单个房间最多300人同时在线,支持最多50人同时发言。适合1对1视频通话、300人视频会议、在线问诊、远程面试、视频客服、在线狼人杀等应用场景。
- 直播模式下的 TRTC,支持单个房间最多10万人同时在线,具备小于300ms的连麦延迟和小于1000ms的观看延迟,以及平滑上下麦切换技术。适用低延时互动直播、十万人互动课堂、视频相亲、在线教育、远程培训、超大型会议等应用场景。
支持,免提模式通过设置音频路由实现,Native SDK 通过 setAudioRoute 接口切换,小程序端通过 <live-player> 标签的 sound-mode 属性设置。
支持,通过 enableAudioVolumeEvaluation 接口启用。
支持,通过 setLocalViewMirror 接口设置本地摄像头预览画面的镜像模式,或通过 setVideoEncoderMirror 接口设置编码器输出的画面镜像模式。
支持,通过 startAudioRecording 接口可以将通话过程中的所有音频(包括本地音频,远端音频,BGM 等)录制到一个文件里,目前支持的音频格式有 PCM, WAV, AAC。
支持自有服务端录制(即录音/录像),如需使用请 提工单 联系我们获取 SDK 及相关指引。 您也可以使用 实现云端录制与回放 录制视频。
此类功能属于 UI 布局逻辑,SDK 并不限制 UI 上的展示处理。在官方 Demo 中提供了画面前后堆叠和九宫格布局模式的示例代码,并且支持悬浮窗、大小画面切换和画面拖动,更多详情请参考 官方 Demo。
TRTC 没有音频和视频通道的区分,只调用 startLocalAudio 不调用 startLocalPreview 时即为纯音频通话模式。
- 6.9以前版本:进房时需要构造
json{\"Str_uc_params\":{\"pure_audio_push_mod\":1}}
传入 TRTCParams.businessInfo 中,1表示旁路推流 2表示旁路推流+录制。 - TRTC SDK 6.9及以后版本:在进房时选择场景参数为 TRTCAppSceneAudioCall 或 TRTCAppSceneVoiceChatRoom 即可。
支持。
- 如果是简单的信令操作,可以使用 TRTC 的自定义信令接口 sendCustomCmdMsg,开发者自己定义相应的控制信令,收到控制信令的通话方执行对应操作即可。例如,踢人就是定义一个踢人的信令,收到此信令的用户就自行退出房间。
- 如果是需要实现更完善的操作逻辑,建议开发者通过 即时通信 IM 来实现相关逻辑,将 TRTC 的房间与 IM 群组进行映射,在 IM 群组中收发自定义消息来实现相应的操作。
支持,目前 TRTC SDK 中已打包 TXLivePlayer。如果有更多播放器功能需求,可以直接使用 LiteAVSDK_Professional 版本,包含了全部功能。
- 通话模式下,单个房间最多支持300人同时在线,最多支持50人同时开启摄像头或麦克风。
- 直播模式下,单个房间支持10万人以观众身份在线观看,最多支持50人以主播身份开启摄像头或麦克风。
TRTC 专门针对在线直播场景推出了10万人低延时互动直播解决方案,能保证主播与连麦主播的最低延时到200ms,普通观众的延时在1s以内,并且超强的抗弱网能力适应移动端复杂的网络环境。 具体操作指引请参考 跑通直播模式。
不能,TRTC 发送自定义消息适用于简单低频的信令传输场景,具体限制参见 使用限制。
支持,循环播放可以在完成回调里面重新调用播放,播放进度可以通过 TXAudioEffectManager seekMusicToPosInMS 设置。
? setBGMPosition() 在 v7.3 版本废弃,通过 TXAudioEffectManager seekMusicToPosInMS 替代。
有,TRTC 使用 onRemoteUserEnterRoom/onRemoteUserLeaveRoom 监听房间成员进出房间(有上行音视频权限的用户才会触发)。
?onUserEnter/onUserExit 在 6.8 版本废弃,通过 onRemoteUserEnterRoom/onRemoteUserLeaveRoom 替代。
通过以下监听回调监听:
- onConnectionLost:SDK 跟服务器的连接断开。
- onTryToReconnect:SDK 尝试重新连接到服务器。
- onConnectionRecovery:SDK 跟服务器的连接恢复。
SDK 支持用户断线情况下自动重连(若持续30分钟都未重连成功,则自动退房并返回-3301错误码),连接过程中具体的连接状态和处理逻辑如下说明。
下图展示了从用户 Userid1 加入频道,到连接中断,再到重新加入房间过程中,收到的监听回调事件:
具体说明:
- T1:用户侧发起调用
enterRoom
接口发起进房请求。 - T2:用户 Userid1 收到
onEnterRoom
回调,Userid2 感知 Userid1 存在延迟,大约300ms后,Userid2 收到onRemoteUserEnterRoom
回调。 - T3:Userid1 客户端因网络问题断网,SDK 会尝试重新加入房间。
- T4:Userid1 如果连续8秒没有连接上服务端,Userid1 收到
onConnectionLost
断连回调。 - T5:Userid1 接着隔3秒没有连接上服务端,Userid1 收到
onTryToReconnect
重试回调。 - T6:Userid1 接着每隔24秒,收到 onTryToReconnect 重试回调。
- T7:Userid2 会在收到 Userid1 掉线通知90s后,SDK 判断远端用户 Userid1 掉线,Userid2 收到
onRemoteUserLeaveRoom
回调。 - T8:如果Userid1断连期间任意时刻重连成功,Userid1 收到
onConnectionRecovery
恢复回调。
支持,通过 onFirstVideoFrame/onFirstAudioFrame 可以监听。
目前在 iOS/Android 端调用 snapshotVideo() 支持本地及远端视频画面截图。
目前 TRTC 有对主流的蓝牙耳机和外设做兼容,但是还会遇到某些设备上有兼容问题。建议使用官方 Demo 以及微信、QQ音视频通话测试对比下是否都正常。
可以通过 SDK 接口 onStatistics() 获取到这些统计信息。
目前只支持本地音乐,可以先下载至本地再调用 playBGM() 播放。
支持,通过 setAudioCaptureVolume() 接口可以设置 SDK 的采集音量,通过 setRemoteAudioVolume() 接口可以设置某个远程用户的播放音量。
- stopLocalPreview 是停止本地视频采集,调用该接口后自己本地和远端画面都将是黑屏。
- muteLocalVideo 是设置是否向后台发送自己的视频画面,调用该接口后其他用户观看的画面将变成黑屏,自己本地的预览还是能看到画面。
- stopLocalAudio 是关闭本地音频的采集和上行。
- muteLocalAudio 并不会停止发送音视频数据,而是会继续发送码率极低的静音包。
建议参考 设定画面质量 配置分辨率达到更合适的画面质量。
可以通过 TRTCCloud 的 setVideoEncoderParam() 接口设置 TRTCVideoEncParam 参数中 videoResolution(分辨率)、videoFps(帧率)、videoBitrate(码率)。
详情请参见 视频画面旋转和缩放。
详情请参阅 视频画面旋转和缩放。
详情请参见 推荐的配置。
详情请参见 通话前网络测速。
支持,详情请参见 进房权限保护。
支持,详情请参见 实现 CDN 直播观看。
- iOS 端支持 i420、NV12 和 BGRA。
- Android 端支持 I420 和 texture2d。
腾讯实时音视频(Tencent Real-Time Communication,TRTC),将腾讯多年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开发者快速搭建低成本、低延时、高品质的音视频互动解决方案,详细说明请参见 产品概述。
具体请参见 Demo 体验。
实时音视频为您提供了各个平台的 Demo 源码,您只需花费极少的时间即可快速搭建属于您自己的小应用,具体请参见 新手入门。
具体请参见 实现云端录制与回放。
支持美颜功能。TRTC 提供基于人脸识别技术的 AI 美颜、美妆、微整形、绿幕等各类型多种特效。
? 只有全功能版支持美颜特效组件,现阶段 iOS 和 Android 平台有这个功能。
TRTC 支持在国外和香港使用。
?
- 提供覆盖全球的高连通、高可靠、强安全的网络连接通道,自研多重最优寻址算法,具有全网调度能力。丰富的高带宽资源储备,全球节点布局,保证国际链路端到端平均时延 < 300ms。
- 由于国际链路问题,具体使用时也会受地区与实际使用场景等因素影响。
关于涉黄、涉政、敏感信息等,会自动进行拦截关闭,不会允许出现在直播间中,请参见 实时音视频鉴黄功能。
目前不支持查询当前房间所有用户信息。
不支持,目前新增支持 RTMP 推流,详情请参见 RTMP 协议推流接入 TRTC文档。
支持双声道。
TRTC 采集后先进行编码,再进行封装。
TRTC 目前 Model 层是 OC 版本,UI 层是 Swift 版本。
TRTC 支持个人账户使用。