腾讯实时音视频(Tencent Real-Time Communication,TRTC)是腾讯云基于 QQ 十多年来在音视频通话技术上积累,并结合腾讯浏览服务 TBS WebRTC 能力与腾讯实时音视频 SDK ,为客户提供多平台互通高品质可定制化的 实时音视频互通服务 解决方案。 为了方便开发者技术选型、开发集成,以下是针对不同问题场景整理的 TRTC 常见问题汇总,后续会持续更新,欢迎反馈。
TRTC Web SDK 对浏览器的详细支持度,您可以查看 TRTC Web SDK 对浏览器支持情况。
对于上述没有列出的环境,您可以在当前浏览器打开 TRTC 能力测试 测试是否完整的支持 WebRTC 的功能。
您可以查看 通话前环境与设备检测 。
您可以查看这些文档来实现高级功能:混流, 旁路推流, 大小流, 美颜
错误名 | 描述 | 处理建议 |
---|---|---|
NotFoundError | 找不到满足请求参数的媒体类型(包括音频、视频、屏幕分享)。 例如:PC 没有摄像头,但是请求浏览器获取视频流,则会报此错误。 | 建议在通话开始前引导用户检查通话所需的摄像头或麦克风等设备,若没有摄像头且需要进行语音通话,可在 TRTC.createStream({ audio: true, video: false }) 指明仅采集麦克风。 |
NotAllowedError | 用户拒绝了当前的浏览器实例的访问音频、视频、屏幕分享请求。 | 提示用户不授权摄像头/麦克风访问将无法进行音视频通话。 |
NotReadableError | 用户已授权使用相应的设备,但由于操作系统上某个硬件、浏览器或者网页层面发生的错误导致设备无法被访问。 | 根据浏览器的报错信息处理,并提示用户“暂时无法访问摄像头/麦克风,请确保当前没有其他应用请求访问摄像头/麦克风,并重试”。 |
OverConstrainedError | cameraId/microphoneId 参数的值无效。 | 请确保 cameraId/microphoneId 传值正确且有效。 |
AbortError | 由于某些未知原因导致设备无法被使用。 |
更多详情请参见 initialize 。
TRTC Web SDK 对浏览器的详细支持度,您可以查看 TRTC Web SDK 对浏览器支持情况。
对于上述没有列出的环境,您可以在当前浏览器打开 TRTC 能力测试 测试是否完整的支持 WebRTC 的功能。
由于设备和浏览器的限制,视频分辨率不一定能够完全匹配,在这种情况下,浏览器会自动调整分辨率使其接近 Profile 对应的分辨率。详情请参见 setVideoProfile 。
屏幕分享的样式由浏览器控制,目前不能修改。
Web端支持发起混流,点击查看如何调用混流转码接口 。
可以尝试调用 TRTC.getCameras 方法是否能获取新的设备列表,如果仍然有拔掉的摄像头信息,说明浏览器底层也没有刷新这个列表,Web 端 SDK 也获取不到新的设备列表信息。
点击查看 iOS上的微信内嵌浏览器对推拉流的支持情况。
因浏览器自动播放策略限制,音频播放会出现 PLAY_NOT_ALLOWED 异常,此时业务层需要引 导用户手动操作 Stream.resume() 来恢复音频播放,自动播放受限处理建议 。
未知异常导致,请通过监控仪表盘查询收发两端的 audioLevel & audioEnergy。
检查一下 Web 页面上是否有获取到数据,在确认数据收发正常时,可以检查 <video>
元素的 srcObject 属性是否赋值了正确的 mediaStream 对象,如果赋值错误,肯定显示不了。
通话双方的设备相距太近的时候,属于正常现象,测试时请相互距离远一点。当其他端听到 Web 端的声音存在回声、噪声、杂音等情况时,说明 Web 端的 3A 处理没有生效。
若您使用了浏览器原生 getUserMedia API 进行自定义采集,则需要手动设置 3A 参数:
若您使用 TRTC.createStream 接口进行采集,则无需手动设置 3A 参数,SDK 默认开启 3A。
出现该错误说明 TRTC Web SDK 在建立媒体传输通道时失败,请检查防火墙配置。TRTC Web SDK 依赖以下端口进行数据传输,请将其加入防火墙白名单,配置完成后,您可以通过访问并体验 官网 Demo 检查配置是否生效。
请查看 应对防火墙限制相关
出现该错误说明 TRTC Web SDK 在建立媒体传输通道时失败,请检查防火墙配置。TRTC Web SDK 依赖以下端口进行数据传输,请将其加入防火墙白名单,配置完成后,您可以通过访问并体验 官网 Demo 检查配置是否生效。
请查看 应对防火墙限制相关
可以通过 getAudioLevel 获取当前音量大小,详细教程请查看 。
通过后台 RESTAPI 移除用户 会触发这个事件。需要注意的是同名用户同时登录不会触发这个事件,这种行为是业务逻辑错误,业务应当从逻辑上避免。若客户需要房间内成员互踢管理,建议客户使用 WebIM SDK实现相关逻辑。
支持监听远端退房事件,建议使用客户端事件中的 client.on('peer-leave') 事件实现远端用户退房通知。
是的,实时音视频支持全平台互通。
参考 Stream.getVideoFrame() 接口。
需要设置 createClient 的 pureAudioPushMode 参数。
这个表示 SDK 遇到不可恢复错误,业务层要么刷新页面重试要么调用 Client.leave 退房后再调用 Client.join 重试。
Web端4.3.8以上版本已支持自定义流ID,可以更新SDK版本。 小程序当前暂不支持。
点击查看教程,采集系统声音只支持 Chrome M74+ ,在 Windows 和 Chrome OS 上,可以捕获整个系统的音频,在 Linux 和 Mac 上,只能捕获选项卡的音频。其它 Chrome 版本、其它系统、其它浏览器均不支持。
点击查看教程,您可以先获取到系统的摄像头和麦克风设备后,调用 switchDevice 来进行切换。
云+社区
和 GitHub
提问或者查询历史问题以及解决方案。原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。