直播專(zhuān)題問(wèn)題排查-播放雜音、噪音、回聲(七)

播放雜音、噪音、回聲問(wèn)題

相比于視頻而言,音頻要敏感得多,視頻畫(huà)面有噪點(diǎn)、馬賽克都還是可以勉強(qiáng)被接受,而聲音一旦有任何瑕疵,人耳都會(huì)特別容易感覺(jué)到,而且難以忍受。

1. 問(wèn)題現(xiàn)象

常見(jiàn)的音頻問(wèn)題現(xiàn)象描述如下:

  • 電流音,爆音,滋滋聲或者嘟嘟聲
  • 聲音斷斷續(xù)續(xù),聽(tīng)不清楚
  • 回聲,能聽(tīng)到自己說(shuō)話的聲音

2. 問(wèn)題排查

2.1 參數(shù)配置問(wèn)題

上面也有提到,音頻是一個(gè)特別敏感的東西,涉及到許多參數(shù)配置,一旦配置不太匹配,就會(huì)導(dǎo)致聲音聽(tīng)起來(lái)非常詭異(比如:采樣率是 32000Hz 的音頻,給播放器配置為 8000Hz 或者 44100Hz,就明顯會(huì)出現(xiàn)音頻慢放或者快放的效果)。

我們只需要注意的是,無(wú)論是采集和播放,都要給系統(tǒng)的 API 以及第三方的庫(kù)配置正確的參數(shù),如:采樣率、位寬、聲道數(shù)等等。

2.2 代碼層面的原因

常見(jiàn)的代碼層面的問(wèn)題有如下幾種:

  • 音頻 buffer 大小不匹配,一段 1024 bytes 的音頻,放到了 2048 bytes 的數(shù)組,導(dǎo)致尾部有隨機(jī)數(shù)
  • 音頻 resample 重采樣的算法問(wèn)題,導(dǎo)致采樣出來(lái)的數(shù)據(jù)出了問(wèn)題
  • Android 的 ByteBuffer 取出數(shù)組,是不能直接用 .array() 方法的,而需要用 .get() 方法
  • iOS 系統(tǒng),其他 app 通過(guò)系統(tǒng) API 更改了 AudioSession 采樣率的配置
2.3 網(wǎng)絡(luò)波動(dòng)

視頻是一幀一幀連續(xù)的圖像構(gòu)成的,在播放過(guò)程中,如果無(wú)法按時(shí)渲染,則會(huì)出現(xiàn)卡頓的效果;如果丟失幾幀畫(huà)面,則會(huì)出現(xiàn)快進(jìn)效果。
而音頻是流式的,雖然也被切分為了一個(gè)個(gè)音頻幀,但如果無(wú)法按時(shí)播放或者連續(xù)丟失較多的音頻幀,則會(huì)明顯聽(tīng)到斷斷續(xù)續(xù)的聲音出現(xiàn)。特別是在弱網(wǎng)、丟包率高等不穩(wěn)定網(wǎng)絡(luò)環(huán)境下,很容易出現(xiàn)這種情況。

2.4 回聲消除

回聲一般出現(xiàn)在同時(shí)有音頻的采集和播放的場(chǎng)景,比如:連麥互動(dòng)、混音返聽(tīng)等等,采集到的音頻通過(guò)揚(yáng)聲器又播放出來(lái)了,同時(shí)又被采集了進(jìn)去,從而產(chǎn)生了回聲或者嘯叫聲。

這樣的場(chǎng)景下,一般需要通過(guò)系統(tǒng)的回聲消除 API,或者第三方回聲消除庫(kù)(如:speexdsp,webrtc 等)進(jìn)行處理。

注意:很多 Android 機(jī)型硬件自帶的回聲消除效果并不是很好。

2.5 混音越界

音頻的 PCM 數(shù)據(jù),通常用 short 數(shù)組來(lái)存放,當(dāng)我們做一些多路音頻的混音功能的時(shí)候,如果不注意處理 short 類(lèi)型的大小越界,則往往帶來(lái)爆音的問(wèn)題

直播專(zhuān)題問(wèn)題排查-播放失?。ㄒ唬?/a>
直播專(zhuān)題問(wèn)題排查-播放卡頓(二)
直播專(zhuān)題問(wèn)題排查-首開(kāi)慢(三)
直播專(zhuān)題問(wèn)題排查-延時(shí)高(四)
直播專(zhuān)題問(wèn)題排查-音畫(huà)不同步(五)
直播專(zhuān)題問(wèn)題排查-黑屏、花屏、閃屏(六)
直播專(zhuān)題問(wèn)題排查-播放雜音、噪音、回聲(七)
直播專(zhuān)題問(wèn)題排查-拖動(dòng)不準(zhǔn)(八)
直播專(zhuān)題問(wèn)題排查-功耗高(九)
直播專(zhuān)題問(wèn)題排查-馬賽克(十)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者。

友情鏈接更多精彩內(nèi)容