語音app開發(fā),如何做好網(wǎng)絡(luò)抗丟包工作?
由于網(wǎng)絡(luò)的瞬息萬變,語音app開發(fā)的需要依靠網(wǎng)絡(luò)才能實現(xiàn)的實時連麥互動就會受到一定影響,其中丟包問題備受矚目。網(wǎng)絡(luò)丟包會導(dǎo)致用戶間的實時語音連麥卡頓,因此,在語音app開發(fā)時需要做好網(wǎng)絡(luò)抗丟包工作。

一、自動碼率控制
自動碼率控制是一種針對網(wǎng)絡(luò)狀態(tài)進行碼率調(diào)整的策略,不過由于語音app開發(fā)的實時語音連麥場景對碼率的要求并不高,所以自動碼率控制的使用意義并不大,不過,在實時視頻連麥場景下自動碼率控制的作用就很明顯了。
二、自動請求重傳
當語音app開發(fā)的數(shù)據(jù)包在網(wǎng)絡(luò)中傳輸時,如果網(wǎng)絡(luò)環(huán)境并不穩(wěn)定就會出現(xiàn)丟包情況,自動請求重傳其實就是針對丟包情況所實現(xiàn)的一種對抗策略,具體的實現(xiàn)方式有兩種:
1、當數(shù)據(jù)包發(fā)出后,只要在規(guī)定時間內(nèi)沒有收到響應(yīng),就再發(fā)出一次數(shù)據(jù)包。
2、當數(shù)據(jù)包發(fā)出后,在接收到重傳請求后才進行數(shù)據(jù)包的再次發(fā)送。
自動請求重傳在語音app開發(fā)中應(yīng)用,需要保證端到端的網(wǎng)絡(luò)延遲比較低,這樣才能在做好網(wǎng)絡(luò)抗丟包的同時,不影響用戶的使用體驗。

三、PLC
這是一種完全后盾的抗丟包方法,在實際運用時可以通過插值法、過采樣法、拉伸和縮短法等方法實現(xiàn)。一般情況下,在語音app開發(fā)中使用PLC可以對抗5%的丟包,如果丟包數(shù)量過多,PLC的使用效果就不是很理想了。
四、FEC
在語音app開發(fā)中使用FEC進行網(wǎng)絡(luò)抗丟包工作,可以分為兩種類型:
1、基于信源的網(wǎng)絡(luò)抗丟包策略
該策略主要是通過增加包的發(fā)送數(shù)量來抵抗網(wǎng)絡(luò)丟包情況,如果在語音app開發(fā)中,原本發(fā)送的音頻數(shù)據(jù)包只有50個,那在基于信源的網(wǎng)絡(luò)抗丟包策略下就需要發(fā)出兩倍或者更多倍的音頻數(shù)據(jù)包,以抵抗網(wǎng)絡(luò)丟包。
2、基于信道的網(wǎng)絡(luò)抗丟包策略
該策略主要是根據(jù)當前的丟包率,發(fā)送更多的數(shù)據(jù)包抵抗丟包,比如在語音app開發(fā)中原本發(fā)送的數(shù)據(jù)包是4個,那基于信道的網(wǎng)絡(luò)抗丟包策略就會將數(shù)據(jù)包處理成6個,只要到了任意4個即可完成準確解碼。

由于語音app開發(fā)的實時語音連麥是用戶間進行互動的主要方式,所以我們要保證實時語音連麥的質(zhì)量,只有這樣才能帶給用戶更好的線上社交體驗。
聲明:本文由云豹科技原創(chuàng),轉(zhuǎn)載請注明作者名及原文鏈接,否則視為侵權(quán)