解决飞书 Linux 在屏幕分享时候的回音问题

news/2024/9/20 2:52:20/文章来源:https://www.cnblogs.com/libitum/p/18337255

问题

在 Linux 桌面环境中使用飞书时,有一个十分诡异的现象:
触发条件:

  1. 使用飞书会议;
  2. 自己进行屏幕分享;
  3. 自己没有 mute,即自己没有关闭麦克风。

现象:

  1. 其他人讲话时会听到他自己的回音;
  2. 我自己听到的声音则是正常的。

我的使用环境:

  • 飞书版本:7.18.11
  • Debian 12 + KDE + Wayland + Pipewire

P.S. 为飞书对 Linux 环境的支持手动点赞!企鹅家学着点儿!

分析

1: 使用 Pipewire 替换 PulseAudio

根据 Debian 官方 wiki 的内容,Debian 12 只在 Gnome 环境下默认使用了 Pipewire,而 KDE 和其他环境还是 PulseAudio 的方案。
因此,怀疑可能与这个相关,遂尝试将 PulseAudio 彻底替换为 Pipewire 试一下。

替换方法:

# pipewire-audio 是一个 meta package,包含了完整的 pipewire 解决方案,会自动替换掉 PulseAudio。
# 所以安装这一个就够了。
sudo apt install pipewire-audio

然后重启生效。

然而,经测试后发现,问题依然存在,所以应该不是这个问题。

2:检查 Pipewire 的连接情况

安装可视化工具

# qpwgraph 是 Qt based
# helvum 是 Gtk based,Gnome 环境可以安装这个
sudo apt install qpwgraph

查看飞书会议,不分享屏幕时的情况

不分享屏幕时的连接状态

可以看到,Microphone 已经和 ByteAudio Engine 的 Input 连接了,这个符合预期,没有问题。

查看飞书会议,分享屏幕后的情况

分享屏幕后的连接状态

这里,诡异的地方出现了:

  • 设备的 monitor 也和 ByteAudio Engine 的 Input 连接在了一起。(显示 Headphones 是因为此时我使用了耳机)

于是我开始怀疑,是不是与分享屏幕时的 “共享电脑音频” 功能相关,需要继续求证一下。

查看打开 “共享电脑音频” 的情况

打开共享电脑音频的连接状态

从图片中可以看到, “共享电脑音频” 的开关已经打开,但音频的连接没有任何变化。

查看关闭 “共享电脑音频” 的情况

关闭共享电脑音频的连接状态

诡异的事情来了,当再次关闭 “共享电脑音频” 后,设备 monitor 到 ByteAudio Engine 的连接没有了。
而此时,测试声音也正常,没有回音了,问题解决。

总结

估计是飞书在屏幕分享的相关初始化逻辑中有 bug,初始化了相关设备连接,却没有关闭这个状态。导致默认开启了电脑音频,会把当前设备音频作为 input 继续转发回去,进而导致了当别人说话的时候,会听到他自己的回音。

临时解决方案

  1. 共享屏幕后,先手动打开一下 “共享电脑音频”,再手动关闭一下,即可恢复正常。

P.S. 目前还没找到飞书 Linux 版的问题反馈渠道,不知道在后续版本中会不会解决。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/776273.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用keil进行stm32的开发

下载keil 首先打开https://www.keil.com/download/product/ 点击MDK-Arm表单里面的信息乱写一通,然后点击submit,就会出现下载链接。 下载MDK安装keil 一路下一步修改安装路径,用户信息等可以随意填写。 激活keil 右键桌面上的keil图标,以管理员权限运行,然后点击左上角的…

java 07

化繁为简 打印空心金字塔:先用一个for循环打印55的金字塔,在考虑只打印行数相同的星星的金字塔,接着考虑每行前面的空格,最后考虑如何将每行中间空出来。运行结果如下:也可以将i改为变量打印输入的数量的金字塔; (int)(Math.random()100)随机生成0到100间的数; 用for…

【Springboot】启动提示没有启动清单

背景 java -jar 启动jar包的时候,提示没有启动清单 解决办法 启动类可以直接本地启动,说明不是启动类有问题,检查配置 发现pom文件中<configuration><mainClass>com.org.svc.application</mainClass><skip>true</skip> </configuration>…

14.前端html

html 一、基本介绍 1、定义:html是一种超文本标记语言,也是一种标识性语言(不是编程语言) 标记:记号(绰号) 超文本:就是页面内容可以包含图片、链接,音乐,视频等素材。2、为什么学习html? (1)测试页面元素,了解页面页面元素(页面是html语言编写的) (2)进行ui…

探索未来之境:揭秘元宇宙(Metaverse)

在科技与想象的交界,一个名为“元宇宙”(Metaverse)的概念正逐渐从科幻走入现实,预示着人类交互与体验的全新纪元。元宇宙不仅是技术的飞跃,更是未来生活方式的蓝图,它模糊了虚拟与现实的界限,开启了无限可能。本文将深入剖析元宇宙的定义、关键技术、现有形态、应用前景…

使易语言工具展示扩展组件

版权木有,侵权不究,欢迎转载

5G CPE SC100:5G时代的旗舰级无线路由器

作为星创易联CPE无线路由器SC100的产品经理,我很高兴能够与大家分享这款产品的特点和使用体验。经过我们团队的不懈努力,SC100终于面世,它集多项领先技术于一身,定位高端市场,希望能给用户带来极致的上网体验。下面就让我从硬件规格、无线性能、接口丰富程度、指示灯设计、便携…

成品库存周转率报表(一)

一、每日库存结存到表单《历史库存信息》 生成历史库存 每日库存存储 二、报表逻辑 组织=供应链中心,仓库=成品仓,区间可选,可单独搜索某物料(1)库存数取自《历史库存信息》(2) 期初库存为起始日期的查询库存,期末库存为结束日期的查询库存(3)平均库存数量=(期初库存…

无限制报表制作,节省费用的新选择

许多企业在报表制作上投入了大量资金,使用各种收费软件,往往只能满足基本需求,且操作复杂,让人感到无比头疼。不过最近我发现之前一直在做数据大屏的山海鲸可视化,现在新增了报表功能,不仅各种功能都可以免费使用,而且不像其他一些报表软件一样会有许多限制,本人亲自体…

Tiny XSS Payloads 微型XSS代码

项目地址 GitHub: https://github.com/terjanq/Tiny-XSS-Payloads 网站地址 https://tinyxss.terjanq.me 截图 payload列表 当前有效载荷 <!-- 如果你控制URL --> <svg/onload=eval(``+URL)> <!-- 仅在反射型跨站脚本攻击(Reflected XSS)场景下有效 --> &…

CMAKE 《多模块例子》

概述生成sort\calc的静态库,并生成app1.exe app2.exe目录结构CMakeLists.txt 位置以及配置 根CMakeLists.txt cmake_minimum_required(VERSION 3.15) project(mulitiple_modules) set(CMAKE_CXX_STANDARD 17) # define variables # LIBPATH 库存储位置 set(LIBPATH ${PROJECT_…

2021-工业互联网内部预选-Crypto_crackCipher

Crypto_crackCipher 考点:RSA、共模攻击、小明文攻击 #题目 n: 3193467051524313537654449477780016781874168088948235747604366410155226384696590270906268756094936294755374972352472143574789695791249214719304367176275827392855787492563778812812523498909705462158…