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秒,客戶端會被服務器踢掉??蛻舳藭蠄箦e誤提示,客戶需要手動去重新加會。