国产Linux音视频聊天程序开发遇到的坑及解决:相互听不到对方声音?

最近完成了一个银河麒麟上的视频聊天项目,在我们开发机上测试一切正常后,提交给甲方测试。结果发现在甲方的某些银河麒麟V10的电脑上,听不到声音。

这个问题,使用《Avalonia 实现跨平台的IM即时通讯、语音视频通话(源码,支持信创国产OS,统信、银河麒麟)》这个Demo就可以重现。

我们在客户的几台麒麟V10上做了各种测试,而同一台电脑,在某些情况下又是正常能听到声音的,这真是太奇怪了。

经过漫长的摸索排查,确认麦克风扬声器硬件没有问题,程序也没有问题,最后,终于找到了问题的根本所在。

经过反复测试,发现这个问题跟银河麒麟V10的系统的声音设置有关。

1. 将系统麦克风和扬声器的音量调到最大

如果扬声器音量没有开到最大,那么即使正常的语音数据提交给系统去播放,也是听不到声音的。如下图,将麦克风的声音设置为最大。

如果麦克风音量没有开到最大,那么采集到的麦克风声音数据都是静音数据(全0),这也解释了麦克风连接器连接是正常的,为什么听不到声音了,因为收到的声音数据全是0。

2. 在银河麒麟V10上,麦克风和扬声器设备是独占模式

如果打开了如上图所示的声音设置窗口,麦克风和扬声器就被系统独占了。此时,如果再运行我们音视频通话程序,程序打开麦克风和扬声器就会失败。

综上所述,在国产OS银河麒麟V10上,要想音视频通话正常,需要保证:麦克风和扬声器的音量开到最大,没有其它别的程序(包括系统设置面板)占用了麦克风和扬声器。

开发国产OS上的音视频程序这么久了,感觉跟之前windows相比,国产OS对音视频设备的支持还是差一些,还有一段距离。

相信国产OS越来越好,到最后完全取代掉windows。当然,这需要更多的人将国产OS用起来,现在国家正在大力支持信创这块,前途还是很乐观的。

相关推荐
带刺的坐椅21 天前
FolkMQ 1.6.0(纯血国产,适合信创)
信创·国产·消息中间件·folkmq
志凌海纳SmartX1 个月前
傲医医疗集成引擎 Rhapsody 在超融合信创平台表现如何?
信创·医疗·超融合
行云管家1 个月前
中间件是什么?信创中间件有哪些牌子?哪家好用?
中间件·信创
行云管家2 个月前
目前市面上堡垒机厂家有哪些?会帮忙部署吗?
网络安全·信创·堡垒机
亦风亦尘2 个月前
信创基础软件之中间件
中间件·信创·国产化·东方通
dreaming3172 个月前
信创 | 信创产业全解析:一篇文章带你深入了解!
信创·信息技术应用创新产业·信创产业
行云管家3 个月前
行云堡垒国密算法应用与信创支持
信创·国产化·国密·国密算法
ChunkWen4 个月前
迁移 MySQL 数据到 OceanBase 集群(mysqldump+datax)
mysql·oceanbase·mysqldump·信创·datax·数据迁移·国产数据库
ChunkWen4 个月前
OceanBase社区版单节点安装搭建(Docker)
运维·数据库·docker·容器·oceanbase·信创·国产数据库