TRTC Web SDK 对浏览器的详细支持度,请参见 TRTC Web SDK 对浏览器支持情况。
对于上述没有列出的环境,您可以在当前浏览器打开 TRTC 能力测试 测试是否完整的支持 WebRTC 的功能。
您可以查看 通话前环境与设备检测。
具体请参见 通话前的网络质量检测。
出于对用户安全、隐私等问题的考虑,浏览器限制网页只有在安全的环境下(例如 https
、 localhost
、file://
等协议),才能采集麦克风、摄像头。HTTP 协议是不安全的,浏览器会禁止在 HTTP 协议下采集媒体设备。
若您在本地开发测试一切正常,但是页面部署后,却无法正常采集摄像头、麦克风。则请检查您的网页是否部署到了 HTTP 协议上,若是,请使用 HTTPS 部署您的网页,并确保具备合格的 HTTPS 安全证书。
更多详情请参见 URL域名及协议限制说明。
您可请参见 混流、旁路推流、大小流、美颜 、水印文档实现高级功能。
具体请参见 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 上的微信内嵌浏览器对推拉流的支持情况。
检查一下 Web 页面上是否有获取到数据,在确认数据收发正常时,可以检查 <video>
元素的 srcObject 属性是否赋值了正确的 mediaStream 对象,如果赋值错误,肯定显示不了。
通话双方的设备相距太近的时候,属于正常现象,测试时请相互距离远一点。当其他端听到 Web 端的声音存在回声、噪声、杂音等情况时,说明 Web 端的 3A 处理没有生效。
若您使用了浏览器原生 getUserMedia API 进行自定义采集,则需要手动设置 3A 参数:
若您使用 TRTC.createStream 接口进行采集,则无需手动设置 3A 参数,SDK 默认开启 3A。
最新版本的 Chrome 96 废弃了 Plan-B,将会导致 TRTC 实时音视频老版本的(2.x, 3.x) Web SDK 会出现无法通话的情况,请您尽快将 Web SDK 升级至我们的最新版本(4.x)。4.x 版本 SDK 的接口与老版本(2.x, 3.x)不兼容,请参考 快速集成(Web) 升级接入 4.x 版本 SDK。
出现该错误说明 TRTC 桌面浏览器 SDK 在 STUN 打洞失败,请检查防火墙配置。TRTC 桌面浏览器 SDK 依赖以下端口进行数据传输,请将其加入防火墙白名单,配置完成后,您可以通过访问并体验 官网 Demo 检查配置是否生效。
具体请参见 应对防火墙限制相关。
出现该错误说明 TRTC 桌面浏览器 SDK 在建立媒体传输通道时失败,请检查防火墙配置。TRTC 桌面浏览器 SDK 依赖以下端口进行数据传输,请将其加入防火墙白名单,配置完成后,您可以通过访问并体验 官网 Demo 检查配置是否生效。
具体请参见 应对防火墙限制相关。
可以通过 getAudioLevel 获取当前音量大小,具体请参见 切换摄像头和麦克风 。
当用户被踢时会触发该事件,例如:使用同名用户同时登录、调用后台 RESTAPI 移除用户 将用户踢出房间。
注意:同名用户同时登录是不允许的行为,可能会导致双方通话异常,业务层应避免出现同名用户同时登录。
更多具体详情,请参见 CLIENT_BANNED 事件。
支持监听远端退房事件,建议使用客户端事件中的 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 来进行切换,具体操作请参见 切换摄像头和麦克风。
在 iframe 中使用 WebRTC 需要给 iframe 标签增加属性来开启相关权限,具体参考如下。
麦克风、摄像头、屏幕分享权限:
<iframe allow="microphone; camera; display-capture;">
本页内容是否解决了您的问题?