國產Linux音視頻聊天程序開發遇到的坑及解決:相互聽不到對方聲音?

      最近完成了一個銀河麒麟上的視頻聊天項目,在我們開發機上測試一切正常後,提交給甲方測試。結果發現在甲方的某些銀河麒麟V10的電腦上,聽不到聲音。

      這個問題,使用《Avalonia 實現跨平臺的IM即時通訊、語音視頻通話(源碼,支持信創國產OS,統信、銀河麒麟)》這個Demo就可以重現。

      我們在客戶的幾臺麒麟V10上做了各種測試,而同一臺電腦,在某些情況下又是正常能聽到聲音的,這真是太奇怪了。

      經過漫長的摸索排查,確認麥克風揚聲器硬件沒有問題,程序也沒有問題,最後,終於找到了問題的根本所在。

      經過反覆測試,發現這個問題跟銀河麒麟V10的系統的聲音設置有關。

1. 將系統麥克風和揚聲器的音量調到最大

      如果揚聲器音量沒有開到最大,那麼即使正常的語音數據提交給系統去播放,也是聽不到聲音的。如下圖,將麥克風的聲音設置爲最大。 

      如果麥克風音量沒有開到最大,那麼採集到的麥克風聲音數據都是靜音數據(全0),這也解釋了麥克風連接器連接是正常的,爲什麼聽不到聲音了,因爲收到的聲音數據全是0。

2. 在銀河麒麟V10上,麥克風和揚聲器設備是獨佔模式

  如果打開了如上圖所示的聲音設置窗口,麥克風和揚聲器就被系統獨佔了。此時,如果再運行我們音視頻通話程序,程序打開麥克風和揚聲器就會失敗。

       綜上所述,在國產OS銀河麒麟V10上,要想音視頻通話正常,需要保證:麥克風和揚聲器的音量開到最大,沒有其它別的程序(包括系統設置面板)佔用了麥克風和揚聲器。

       開發國產OS上的音視頻程序這麼久了,感覺跟之前windows相比,國產OS對音視頻設備的支持還是差一些,還有一段距離。

       相信國產OS越來越好,到最後完全取代掉windows。當然,這需要更多的人將國產OS用起來,現在國家正在大力支持信創這塊,前途還是很樂觀的。

       

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章