音視訊通信 RTC(Real-Time Communication)是阿裡雲覆寫全球的實時音視訊開發平台,依托核心音視訊編解碼、信道傳輸、網絡排程技術,提供高可用、高品質、超低延時的音視訊通信服務,讓使用者快速搭建多端實時應用,适用于線上教育、視訊會議、互動娛樂、音視訊社交等場景。
産品連結:
https://www.aliyun.com/product/rtc 阿裡雲 RTC 提供網絡品質監控功能,您可以通過使用 AliRtcNetworkQuality 回調來擷取網絡品質評價。功能簡介
在網絡品質不理想的情況下,音視訊通信的品質受客觀因素影響會下降。當監控到弱網環境時,為保證基礎通信體驗,建議您使用 SDK 對應的方法分别在釋出端和訂閱端進行如下優化。
- 調整視訊流規格:通過設定較低檔位規格的 VideoProfile,減少視訊通信的網絡資源占用。
- 切換視訊為小流:小流有着與大流相同的寬高比,但是分辨率和碼率相對較低,網絡資源占用的需求較低。
- 僅釋出音頻流:在極端網絡環境下,可以選擇隻發送音頻流,進而保證通信的持續。
通過使用 AliRtcNetworkQuality 回調擷取的網絡評價如下所示。
枚舉名 | 描述 |
Network_Excellent | 網絡極好,流程度清晰度品質好 |
Network_Good | 網絡好,流暢度清晰度和極好差不多 |
Network_Poor | 網絡較差,音視訊流暢度清晰度有瑕疵,不影響溝通 |
Network_Bad | 網絡差,視訊卡頓嚴重,音頻能正常溝通 |
Network_VeryBad | 網絡極差,基本無法溝通 |
Network_Disconnected | 網絡中斷 |
Network_Unknow | 未知原因 |
實作方法
在實作該功能之前,需要您已經搭建 AppServer、實作基本功能等操作。詳情請參見
入門概述。
具體實作方法如下所示。
您可以通過 onNetworkQualityChanged(網絡狀況變化時回調)方法獲得網絡品質,然後在根據實際政策進行優化。
void onNetworkQualityChanged(String uid, AliRtcNetworkQuality upQuality, AliRtcNetworkQuality downQuality);
參數 | 類型 | |
downQuality | AliRtcNetworkQuality | 下行網絡品質 |
upQuality | 上行網絡品質 | |
uid | String | 使用者 ID |
-
您可以在視訊中調用 setVideoProfile 設定視訊流規格。
說明 通過設定較低規格的視訊流,減少視訊通信的網絡資源占用。
//調用示例
mAliRtcEngine.setVideoProfile(profile, vt);
//接口方法
public void setVideoProfile(AliRtcVideoProfile profile, AliRtcVideoTrack track);
profile | AliRtcVideoProfile | 視訊流參數。預設分辨率 480*640,幀率 15 的相機流。 |
track | AliRtcVideoTrack | 需要設定的視訊流類型。 |
- 調用 configRemoteCameraTrack 将訂閱視訊切換為小流。說明當網絡品質恢複優良狀态時,請您根據實際需求決定是否切換至優先訂閱大流(即預設的訂閱模式)。
//接口方法
public void configRemoteCameraTrack(String uid, boolean master, boolean enable)
//重新訂閱
mAliRtcEngine.subscribe(uid);
master | boolean | 是否大流 |
enable | 是否可用 |
-
- 訂閱視訊切換為小流可以編寫如下代碼:
mAliRtcEngine.configRemoteCameraTrack(uid, false, true);
mAliRtcEngine.subscribe(uid);
-
- 訂閱視訊切換為大流可以編寫如下代碼:
mAliRtcEngine.configRemoteCameraTrack(uid, true, true);
mAliRtcEngine.subscribe(uid);
-
調用 configLocalCameraPublish 方法實作僅釋出音頻流。
說明 當網絡品質恢複優良狀态時,請您根據實際需求決定是否重新釋出音視訊流。
mAliRtcEngine.configLocalCameraPublish(false);
mAliRtcEngine.publish();
是否允許 |
獲得更多功能實作方法,請參見
AliRtcEngine 接口「視訊雲技術」你最值得關注的音視訊技術公衆号,每周推送來自阿裡雲一線的實踐技術文章,在這裡與音視訊領域一流工程師交流切磋。
