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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关推荐
爱笑的源码基地18 小时前
云 PACS 源码实践:HL7 对接 HIS / 电子病历
源码·开发·信创·pacs·医学影像
RuoyiOffice3 天前
达梦 DM8、openGauss、人大金仓怎么选?RuoYi Office 国产数据库适配与验收指南
java·数据库·spring boot·架构·信创
MinterFusion3 天前
如何在openKylin下离线安装360安全浏览器(v0.1.0)
安全·信创·系统运维·明德融创·openkylin·360安全浏览器·银河麒麟桌面
数据库小学妹9 天前
数据共享交换平台选型:交换方式对比与避坑指南
数据库·信创·数据同步·数据交换平台·政务数据共享·数据共享交换平台·数据库底座
书生执笔画浮沉10 天前
Linux桌面端应用向鸿蒙PC迁移适配纪实
c++·qt·c·信创·海思·libc·ohos
寻道码路12 天前
大模型工程化实战(十六):政企国产化避坑——合规/信创名录/私有化运维/国产硬件适配/原厂支持这五道关怎么过
大模型·agent·信创·rag·ai工程化·国产化替代·政企ai落地
豆豆13 天前
政企网站改版选型:从等保测评指标倒推CMS能力清单
信创·国产化·等级保护·网站改版·网站改造·政企信息化·cms选型
数据库小学妹19 天前
数据迁移怎么做才不返工?六步闭环与兼容性分层验收方法
信创·数据迁移·国产数据库·数据库迁移·数据校验
技术拾荒的人儿1 个月前
信创环境部署问卷系统,2026这五款工具的私有化支持情况
私有化部署·信创·系统运维·问卷系统·内网部署
Linux技术支持工程师1 个月前
银河麒麟 V10 出问题了该看哪个日志?secure 找不到、journalctl 查不到历史,一次解决
信创·银河麒麟·journalctl·日志排查·国产化运维