实时音视频 TRTC 常见问题汇总---WebRTC篇

腾讯实时音视频(Tencent Real-Time Communication,TRTC)是腾讯云基于 QQ 十多年来在音视频通话技术上积累,并结合腾讯浏览服务 TBS WebRTC 能力与腾讯实时音视频 SDK ,为客户提供多平台互通高品质可定制化的 实时音视频互通服务 解决方案。
为了方便开发者技术选型、开发集成,以下是针对不同问题场景整理的 TRTC 常见问题汇总,后续会持续更新,欢迎反馈。

WebRTC篇

一、基础环境问题

Web 端 SDK 支持哪些浏览器?

TRTC Web SDK 对浏览器的详细支持度,您可以查看 TRTC Web SDK 对浏览器支持情况

对于上述没有列出的环境,您可以在当前浏览器打开 TRTC 能力测试 测试是否完整的支持 WebRTC 的功能。

通话前音视频设备测试?

您可以查看 通话前环境与设备检测

如何实时检测当前网络的情况?

通话前的网络质量检测

是否支持混流,旁路推流,大小流,美颜?

您可以查看这些文档来实现高级功能:混流, 旁路推流, 大小流, 美颜

二、推拉流问题

Web 端 SDK 日志中报错 NotFoundError、NotAllowedError、NotReadableError、OverConstrainedError 以及 AbortError 分别是什么意思?

错误名

描述

处理建议

NotFoundError

找不到满足请求参数的媒体类型(包括音频、视频、屏幕分享)。 例如:PC 没有摄像头,但是请求浏览器获取视频流,则会报此错误。

建议在通话开始前引导用户检查通话所需的摄像头或麦克风等设备,若没有摄像头且需要进行语音通话,可在 TRTC.createStream({ audio: true, video: false }) 指明仅采集麦克风。

NotAllowedError

用户拒绝了当前的浏览器实例的访问音频、视频、屏幕分享请求。

提示用户不授权摄像头/麦克风访问将无法进行音视频通话。

NotReadableError

用户已授权使用相应的设备,但由于操作系统上某个硬件、浏览器或者网页层面发生的错误导致设备无法被访问。

根据浏览器的报错信息处理,并提示用户“暂时无法访问摄像头/麦克风,请确保当前没有其他应用请求访问摄像头/麦克风,并重试”。

OverConstrainedError

cameraId/microphoneId 参数的值无效。

请确保 cameraId/microphoneId 传值正确且有效。

AbortError

由于某些未知原因导致设备无法被使用。

更多详情请参见 initialize

部分手机上的浏览器无法正常运行 TRTC 进行推拉流?

TRTC Web SDK 对浏览器的详细支持度,您可以查看 TRTC Web SDK 对浏览器支持情况

对于上述没有列出的环境,您可以在当前浏览器打开 TRTC 能力测试 测试是否完整的支持 WebRTC 的功能。

Web 端用宽高设置推流的分辨率是所有浏览器都适用吗?

由于设备和浏览器的限制,视频分辨率不一定能够完全匹配,在这种情况下,浏览器会自动调整分辨率使其接近 Profile 对应的分辨率。详情请参见 setVideoProfile

Web端屏幕分享的样式支持修改吗?

屏幕分享的样式由浏览器控制,目前不能修改。

Web端支持混流吗?

Web端支持发起混流,点击查看如何调用混流转码接口

Web 端 SDK 在使用的过程中拔掉摄像头,怎么清除摄像头列表里面的数据?

可以尝试调用 TRTC.getCameras 方法是否能获取新的设备列表,如果仍然有拔掉的摄像头信息,说明浏览器底层也没有刷新这个列表,Web 端 SDK 也获取不到新的设备列表信息。

iOS 的微信内嵌浏览器不能正常推流?

点击查看 iOS上的微信内嵌浏览器对推拉流的支持情况。

三、播放问题

音视频互通过程中出现有画面没有声音问题?

因浏览器自动播放策略限制,音频播放会出现 PLAY_NOT_ALLOWED 异常,此时业务层需要引 导用户手动操作 Stream.resume() 来恢复音频播放,自动播放受限处理建议

未知异常导致,请通过监控仪表盘查询收发两端的 audioLevel & audioEnergy。

Web通话画面显示不了?

检查一下 Web 页面上是否有获取到数据,在确认数据收发正常时,可以检查 <video> 元素的 srcObject 属性是否赋值了正确的 mediaStream 对象,如果赋值错误,肯定显示不了。

Web 通话过程中出现回声、杂音、噪声、声音小?

通话双方的设备相距太近的时候,属于正常现象,测试时请相互距离远一点。当其他端听到 Web 端的声音存在回声、噪声、杂音等情况时,说明 Web 端的 3A 处理没有生效。

若您使用了浏览器原生 getUserMedia API 进行自定义采集,则需要手动设置 3A 参数:

  • echoCancellation:回声消除开关
  • noiseSuppression:噪声抑制开关
  • autoGainControl:自动增益开关? 详细设置参考 媒体追踪约束

若您使用 TRTC.createStream 接口进行采集,则无需手动设置 3A 参数,SDK 默认开启 3A。

四、其他

运行 Web 端 SDK 时,出现错误:“RtcError: no valid ice candidate found”该如何处理?

出现该错误说明 TRTC Web SDK 在建立媒体传输通道时失败,请检查防火墙配置。TRTC Web SDK 依赖以下端口进行数据传输,请将其加入防火墙白名单,配置完成后,您可以通过访问并体验 官网 Demo 检查配置是否生效。

请查看 应对防火墙限制相关

出现客户端错误:"RtcError: ICE/DTLS Transport connection failed" 或 “RtcError: DTLS Transport connection timeout”该如何处理?

出现该错误说明 TRTC Web SDK 在建立媒体传输通道时失败,请检查防火墙配置。TRTC Web SDK 依赖以下端口进行数据传输,请将其加入防火墙白名单,配置完成后,您可以通过访问并体验 官网 Demo 检查配置是否生效。

请查看 应对防火墙限制相关

Web 端 SDK 可以获取当前音量大小吗?

可以通过 getAudioLevel 获取当前音量大小,详细教程请查看

什么情况会触发 Client.on(‘client-banned’)?

通过后台 RESTAPI 移除用户 会触发这个事件。需要注意的是同名用户同时登录不会触发这个事件,这种行为是业务逻辑错误,业务应当从逻辑上避免。若客户需要房间内成员互踢管理,建议客户使用 WebIM SDK实现相关逻辑。

Web 端是否可以监听远端离开房间?

支持监听远端退房事件,建议使用客户端事件中的 client.on('peer-leave') 事件实现远端用户退房通知。

实时音视频的 Web 端、小程序端、PC 端是不是同步的?

是的,实时音视频支持全平台互通。

实时音视频 Web 端的截图功能如何实现?

参考 Stream.getVideoFrame() 接口。

Web 端 SDK 怎么录制纯音频推流?为什么在控制台开启自动旁路和自动录制录制不成功呢?

需要设置 createClient 的 pureAudioPushMode 参数。

出现Client.on(‘error’)问题该如何处理?

这个表示 SDK 遇到不可恢复错误,业务层要么刷新页面重试要么调用 Client.leave 退房后再调用 Client.join 重试。

小程序和 Web 端支持自定义流ID吗?

Web端4.3.8以上版本已支持自定义流ID,可以更新SDK版本。 小程序当前暂不支持。

Web 端如何在屏幕分享的时候采集系统声音?

点击查看教程,采集系统声音只支持 Chrome M74+ ,在 Windows 和 Chrome OS 上,可以捕获整个系统的音频,在 Linux 和 Mac 上,只能捕获选项卡的音频。其它 Chrome 版本、其它系统、其它浏览器均不支持。

Web 端如何切换摄像头和麦克风?

点击查看教程,您可以先获取到系统的摄像头和麦克风设备后,调用 switchDevice 来进行切换。

技术支持

亲爱的开发者,如果在使用产品过程中遇到任何问题,欢迎到 云+社区GitHub 提问或者查询历史问题以及解决方案。

---(https://github.com/tencentyun/TIMSDK/issues)

本站文章资源均来源自网络,除非特别声明,否则均不代表站方观点,并仅供查阅,不作为任何参考依据!
如有侵权请及时跟我们联系,本站将及时删除!
如遇版权问题,请查看 本站版权声明
THE END
分享
二维码
海报
实时音视频 TRTC 常见问题汇总---WebRTC篇
TRTC Web SDK 对浏览器的详细支持度,您可以查看 TRTC Web SDK 对浏览器支持情况。
<<上一篇
下一篇>>