6.5. JavaScript 常见问题

1. SDK 支持哪些视频编解码器?

解答:SDK 视频编解码器支持VP8、VP9、H264。其中VP8是默认解码器。H264需要在Chorme52+环境下支持。

2. SDK 支持哪些音频编解码器?

解答:SDK音频编解码器支持opus、ISAC、G722、PCMU。

3. 旁路直播时,Chrome浏览器可以作为直播推流端吗?

解答:可以的。提前是视频编解码器需要设置成H264,且在Chorme52+环境下运行。

4. 浏览器对SDK支持情况?

解答:浏览器webrtc兼容性测试见下表:

../_images/BrowserDetect.jpg

Note

叁体Open-AVD SDK可以支持所有浏览器,不同浏览器支持方式不同,兼容webrtc的浏览器可直接支持,不兼容webrtc的浏览器可用各种插件支持。

所有不兼容webrtc的浏览器,都可以采取开发专用插件的方式来获得音视频通讯能力,并能和webrtc兼容浏览器互通,叁体提供C++接口的方式来进行支持。

也可以直接开发一个windows本地客户端来进行支持。

5. IE浏览器上可以运行叁体SDK,进行音视频互动吗?

解答:IE浏览器本身不支持webrtc,没有提供音视频的能力。叁体开发了IE插件,可以让IE与其它平台音视频互通,提前是IE10+;针对IE10-,我们建议采用C++ SDK,做ie ocx插件的形式集成。

6. 日志级别及显示方式怎么设置?

解答:设置代码如下:

avdEngine.setLog(Appender.browserConsole, LogLevel.debug);

Note

Appender.browserConsole是指显示方式,LogLevel.debug是指日志级别,这二个参数可以进行枚举选择;

开发集成时日志级别建议设置成debug,便于问题定位跟踪。生产环境上线,建议设置成info及以上级别。

7. 本地有回音问题,是什么原因,怎么解决?

解答:本地audio标签中,必须设置muted这个属性,否则会有回音。

8. 获取语音设备接口,目前只有麦克风, 能不能获取扬声器?

解答:目前SDK还没有提供获取扬声器的接口,后继版本会提供。

9. 设备接口中返回的设备名称在http/https访问下显示不一样,原因是什么?

解答:关于设备名称, chrome在https访问下可以正常返回真实名,在http访问下,返回空仠,因此SDK设置成cameraX或microphoneX返回。

10. SDK有没有提供用户角色功能,且怎么动态修改角色?

解答:SDK没有提供角色接口,需要应用层自己实现。但SDK提供了透明通道接口,用户扩展接口,应用层的角色可以通过这二个接口带入。

11. 控制台报如下错误,是什么原因引起的? 错误信息:

INFO- oniceconnectionstatechange(),MCU iceConnectionState:failed

ERROR-Create MCU PeerConnection failed.

解答:udp端口没有开放或防火墙没有开通 udp,默认要求的udp端口为8080,客户可以自己配置。

12. 为什么需要数字证书,怎么申请免费的数字证书?

解答:Chrome47+浏览器在打开音视频设备时,要求有部署数字证书,以https访问。关于申请免费的数字证书,可以参考开发者中心/服务器安装指南/HTTPS/SSL免费申请参考说明

13. 访问令牌网页端产生可以吗?

解答:基于安全考虑,不建议在网页端产生,叁体提供了JAVA、PHP的样例代码,希望客户在服务器端生成。样例代码见:github

14. 桌面共享需要安装插件吗?插件怎么写成?应用有什么限制?

解答:桌面共享需要安装chrome插件。叁体会提供播件的源码,客户只需要设置自己的域名及logo,通过chrome打包成crx,最好上传到google网上商店;

15. 网络状况不好时,叁体JS SDK有重连机制吗?

解答:SDK有重连机制的。过程是当网络状况不好有抖动时,ice 状态会向上汇报,webrtc的PeerConnection 会自己进行重连。抖动严重时,与服务器之间ping包丢包多次后,SDK 会触发与服务器重连机制,但重连时长超过10秒,客户端会被服务器踢掉。客户端会上报错误提示,客户需要手动去重新加会。