最近完成了一個銀河麒麟上的視頻聊天項目,在我們開發機上測試一切正常後,提交給甲方測試。結果發現在甲方的某些銀河麒麟V10的電腦上,聽不到聲音。
這個問題,使用《Avalonia 實現跨平臺的IM即時通訊、語音視頻通話(源碼,支持信創國產OS,統信、銀河麒麟)》這個Demo就可以重現。
我們在客戶的幾臺麒麟V10上做了各種測試,而同一臺電腦,在某些情況下又是正常能聽到聲音的,這真是太奇怪了。
經過漫長的摸索排查,確認麥克風揚聲器硬件沒有問題,程序也沒有問題,最後,終於找到了問題的根本所在。
經過反覆測試,發現這個問題跟銀河麒麟V10的系統的聲音設置有關。
1. 將系統麥克風和揚聲器的音量調到最大
如果揚聲器音量沒有開到最大,那麼即使正常的語音數據提交給系統去播放,也是聽不到聲音的。如下圖,將麥克風的聲音設置爲最大。
如果麥克風音量沒有開到最大,那麼採集到的麥克風聲音數據都是靜音數據(全0),這也解釋了麥克風連接器連接是正常的,爲什麼聽不到聲音了,因爲收到的聲音數據全是0。
2. 在銀河麒麟V10上,麥克風和揚聲器設備是獨佔模式
如果打開了如上圖所示的聲音設置窗口,麥克風和揚聲器就被系統獨佔了。此時,如果再運行我們音視頻通話程序,程序打開麥克風和揚聲器就會失敗。
綜上所述,在國產OS銀河麒麟V10上,要想音視頻通話正常,需要保證:麥克風和揚聲器的音量開到最大,沒有其它別的程序(包括系統設置面板)佔用了麥克風和揚聲器。
開發國產OS上的音視頻程序這麼久了,感覺跟之前windows相比,國產OS對音視頻設備的支持還是差一些,還有一段距離。
相信國產OS越來越好,到最後完全取代掉windows。當然,這需要更多的人將國產OS用起來,現在國家正在大力支持信創這塊,前途還是很樂觀的。