跳到主要内容

常见问题

KRTC Web SDK#

支持哪些操作系统和版本?#

KRTC Web SDK 是基于 WebRTC 实现音视频通信的,因此依赖于浏览器对 WebRTC 的支持。

KRTC Web SDK 对操作系统没有特别限制,只要能够安装相关浏览器和版本的操作系统都是可以支持的,推荐使用Windows、Linux、iOS等操作系统最新的3个正式版本。

尽管移动端主流的浏览器都支持 WebRTC,但是由于平台和一些应用内置浏览器的实现各不相同,移动端对音视频编解码的支持也有较大差异,因此,KRTC Web SDK 没有适配移动端,不建议在移动端的浏览器上使用。

提供哪些封装版本?#

KRTC Web SDK 计划提供两种封装版本:

一种是提供实时音视频最基本的底层信令和设备相关接口的封装,这个封装版本不包含前端UI界面,给用户二次开发提供更好的灵活性和可定制性,比较适合有较强研发能力的客户。

另外一种是提供包含前端UI界面的音视频接口和功能的封装,二次开发的灵活性和界面可定制性较差,适合快速集成和应用。

提供哪些接口和功能?#

KRTC Web SDK 提供实时音视频最基本的底层信令和设备相关接口,包含:

  • 获取用户信息
  • 获取房间信息
  • 加入房间
  • 退出房间
  • 获取房间内用户列表
  • 订阅相关接口
  • 摄像头相关接口
  • 麦克风相关接口
  • 扬声器相关接口
  • 共享相关接口

等等

开发需要哪些工具?#

KRTC Web SDK 提供了一系列javascript库文件,开发只需要能运行Web页面的容器和文本编辑工具,推荐使用Node和VS Code。

浏览器使用支持的浏览器和版本,推荐使用Chrome最新的3个正式版本。

开发需要哪些设备?#

使用KRTC Web SDK 开发音视频应用,需要麦克风、摄像头和扬声器等设备,设备的型号没有特别的要求,市场上通用的设备即可,并安装好相关的驱动程序。

另外,可以使用虚拟摄像头软件解决无摄像头或模拟多个摄像头切换的场景,推荐使用VCam。

支持的音视频格式?#

目前平台音频采用OPUS编码,视频采用H264 Simulcast编码(两路:最大640X360和320X180)。

为何使用CEF无法正常发送视频码流?#

CEF官方提供的预编译库默认不支持H.264编码器,因此使用调用SDK会出错。

用户需要重编译libcef,增加H.264编码器支持,具体编译方法可以参考此文

可以通过下一问中提供的测试网站,检测当前浏览器是否支持H264编码格式。

使用CEF开启摄像头,麦克风失败怎么办?#

需要在CEF中启用摄像头、麦克风权限。

以CEF自带的的CefClient项目为例,可以在ClientAppBrowser::OnBeforeCommandLineProcessing函数中,增加以下代码:

command_line->AppendSwitch("enable-media-stream"); // 启用媒体流command_line->AppendSwitch("enable-speech-input"); // 启用音频采集

使用CEF开启屏幕共享失败怎么办?#

由于开启屏幕共享需要提供界面选择共享的屏幕或应用,如仅有一个屏幕,可以通过跳过选择界面来规避此问题。

以CEF自带的的CefClient项目为例,可以在ClientAppBrowser::OnBeforeCommandLineProcessing函数中,增加以下代码:

command_line->AppendSwitch("use-fake-ui-for-media-stream");

如何检测设备的状态?#

可以使用下面的在线工具进行检测:

https://web.sdk.qcloud.com/trtc/webrtc/demo/detect/index.html

如何测试多个用户进入同一房间的场景?#

若条件允许的情况下,可以使用多台实体机器直接访问应用进行相关测试。

若条件不允许或实体机器不足时,可以采用单一机器上安装多个不同的浏览器,每个浏览器上使用不同的账号进行登录,并使用不同的设备或虚拟设备加入同一个房间,这就可以模拟出多个用户的应用场景。

能适应网络波动情况下的自动处理吗?#

KRTC Web SDK 底层已支持断链重连处理,会话未超时的情况下,基本不影响用户的使用。

能支持单页面同时监控多个房间的应用场景吗?#

KRTC Web SDK 支持单页面多个SDK实例的应用场景,但由于平台不允许同一个用户ID加入多个不同的房间,所以需要每个SDK实例使用不同的用户ID加入房间,即:单页面上使用多个不同的用户ID加入不同的房间,从而实现监控多个房间。