[我已接受此答案,以感谢为调试付出大量努力的人。不要搜索它来寻找明确的答案,没有答案。我把耳机带回商店,它就正常工作了。就像魔术一样。我仍然不知道为什么。我回去是因为我们得出结论,问题可能根本不是 ubuntu。我们正处于挑战所有假设的阶段。]
许多页面上都有很多针对此问题的建议解决方案。我尝试了很多方法。到目前为止,没有成功。...问我你想知道什么...
我正在使用带有麦克风的耳机。
[编辑:]
进一步的探索表明,我尝试过的“解决方案”使问题变得更加严重。现在我的电脑上根本没有声音。我估计解决这个问题需要查询电脑的状态,重新安装关键程序等。
这是:Ubuntu 20.04.6 LTS,Dell Latitude e7450。
好的,我已经重新安装了 pulseaudio,声音又回来了。很好。
..顺便说一下,这是网络版 Skype,不确定是否有任何区别..
pavucontrol 似乎可以识别耳机麦克风.. pulsemixer 似乎不能。
这里第一种方法似乎不起作用。大声说出来似乎没有什么区别。第二种方法也没有记录任何内容。第三条消息的输出如下:
(base) eriadar@eriadar-Latitude-E7440:~$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: PCH [HDA Intel PCH], device 0: ALC3226 Analog [ALC3226 Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
(base) eriadar@eriadar-Latitude-E7440:~$ arecord -d 5 test-mic.wav && aplay test-mic.wav && rm test-mic.wav
Recording WAVE 'test-mic.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono
Playing WAVE 'test-mic.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono
似乎没有录制任何音频。
..我现在已经更新并升级了我的系统。..有趣的是,在 pavucontrol 中,它似乎正在录音,但当我大声说话时,它没有反应。
尝试了此处接受的答案,没有成功。尝试了pulseaudio -k
,没有变化。
我曾尝试实现这个答案,但是我不清楚如何使用 kernel.org。
[进一步编辑:]
parec 的输出:(很有趣,但又有点紧张,伴随着一系列音频信号)
“你不是说过重新安装 pulseaudio 后麦克风就可以正常工作了吗?”
我不清楚这一点。-有些事情-正在发生,指示器上下移动,就像背景环境声音一样,但是当我说话或大声说话时,它不会像人们预期的那样做出反应。
“除非你已经弄乱了一些文件,这是大忌(/home、/etc 和 /usr/local 之外的任何东西都属于发行版区域,永远不应手动修改)”
我弄乱了 /home/.config/pulse,就是这样,进入文件管理器中的文件结构并对其进行修改。那些文件似乎都又出现了。至于我可能对命令行所做的愚蠢行为,我不会拿我的名誉冒险。我 - 可能 - 没有做任何带有警告的事情。
(base) eriadar@eriadar-Latitude-E7440:~$ sudo debsums --all -- changed | tee debsums-changed.log
/usr/share/applications/chromium-browser.desktop
/etc/gnome/defaults.list
/usr/share/applications/org.gnome.Evince.desktop
/usr/share/applications/org.gnome.FileRoller.desktop
/usr/share/applications/org.gnome.gedit.desktop
/usr/share/applications/org.gnome.Terminal.desktop
/usr/share/applications/org.gnome.Nautilus.desktop
/etc/vsftpd.conf
我个人没有看到其中有任何与音频相关的东西。
[第三次(?)编辑:]
“如果没有提供文件名,parec 会将数据发送到 stdout,从而导致终端混乱。另外,显然必须将其作为 parecord 运行,以便它能够自动转换为指定的文件类型:”
..我觉得我可以解决这个问题。..这表明我没有尝试,我是多么的疲惫。
试过这个:parecord mic-capture.wav
,它记录了静态。我基本上按照你的建议移动了文件。它根本没有记录任何东西,即使文件放回去了。一个新的 cookie 被覆盖了,这可能是问题所在。
^C(base) eriadar@eriadar-Latitude-E7440:~$ pulseaudio -k
(base) eriadar@eriadar-Latitude-E7440:~$ pactl exit
(base) eriadar@eriadar-Latitude-E7440:~$ echo quit | pacmd
Unknown command: quit
(base) eriadar@eriadar-Latitude-E7440:~$ parecord mic-capture.wav
音频文件仍然为空。
(base) eriadar@eriadar-Latitude-E7440:~$ sudo debsums --all --changed | tee debsums-changed.log
/usr/share/applications/chromium-browser.desktop
/etc/gnome/defaults.list
/usr/share/applications/org.gnome.Evince.desktop
/usr/share/applications/org.gnome.FileRoller.desktop
/usr/share/applications/org.gnome.gedit.desktop
/usr/share/applications/org.gnome.Terminal.desktop
/usr/share/applications/org.gnome.Nautilus.desktop
/etc/vsftpd.conf
(base) eriadar@eriadar-Latitude-E7440:~$
[进一步编辑..]
pactl list sources
更有趣,也更长。将包括几张屏幕截图(请注意后两张故意重叠的截图):
所以,显然,“某物”确实看到了耳机麦克风......所以我们取得了一些进展......
(base) eriadar@eriadar-Latitude-E7440:~$ pactl get-default-source
No valid command specified.
(base) eriadar@eriadar-Latitude-E7440:~$
..哎呀.. ..感觉 - 有些 - 动力去找出正确的命令是什么..
[由@PeeWee 编辑]:(我认为,目前最好就地编辑您的问题,请参阅我的答案下方的最后一条评论)
该命令在 Ubuntu 24.04 中有效,因此在 20.04 中可能没有等效命令。我相信它pacmd
支持更多命令,但语法不同 IIRC;但它支持交互模式,通过不带参数运行它,您可以“探索”。[/编辑]
我的第一个建议是检查 pulseaudio 配置(
pavucontrol
,pulsemixer
)。设备的配置文件应设置为名称中带有“Duplex”(即同时播放和录制)的配置文件,例如“Analog Stereo Duplex”。另外,Chromium 很容易实现,而且限制可能太严格了
snap connect chromium:audio-record
。但除非你更详细地说明你实际尝试过什么以及结果如何,否则没人能帮你什么忙。如果你回答说你已经尝试过我的建议,那完全取决于你。
编辑(针对 OP 中最近的更改):pulsemixer 和 pavucontrol 的屏幕截图确实显示了相同的状态,只是 pulsemixer 认为仅命名活动设备(“内置模拟立体声”)就足够了,它是默认源(请注意名称前面的“*”)。此外,pavucontrol 和声音设置的电平表确实表明存在实际输入信号,可能是您对着麦克风的呼吸;尝试对着麦克风说话,观察条形图移动(即声音设置>输入>“耳机麦克风内置音频”:下面的条形图显示当前录音信号电平)。
因此,测试中的录音是问题所在。尝试使用 的
parec
Pulseaudio 模拟程序arecord
。在运行 pulseaudio 时,切勿使用 alsa 工具,因为后者可能对设备有独占锁定或重定向流,因此它不会到达预期的位置。但是,在我继续说下去之前,我要澄清一下:你不是说过重新安装 pulseaudio 后麦克风可以正常工作了吗?因为如果是这样,你进一步的测试可能只会再次走上错误的道路。赢得胜利。;-) 我也是凭经验告诉你,有时最好让它搁置一段时间,然后重新振作起来。你不会相信我经历了多么大的挫折,后来才发现我才是自己最大的障碍,可以说是遮天蔽日。
EDIT2:关于 kernel.org 程序:这应该不是必需的,除非您已经弄乱了一些文件,这是大忌(/home、/etc 和 /usr/local 之外的任何东西都是发行版区域,永远不应手动修改)。但修复此问题的正确方法是使用
debsums
:如果发现文件的校验和存在一些差异,而这些差异不是用户可更改的,则只需重新安装相应的包:
需要注意的是,debsum --all
还要检查配置文件是否与供应商版本不同,这在技术上不算错误,因此不要仅仅因为更改了 /etc 中的某些配置就重新安装,而是要检查它是否与音频有一点点关系。如果您随后想要重新安装原始版本,则需要将配置文件移开,否则 apt 将不会覆盖它(但是 /etc 之外的所有其他文件,即 /usr/bin 中的文件对 apt 来说都是公平的,因此不要删除 /etc 之外的任何文件;只需运行重新安装并使用 debsums 进行仔细检查即可)。编辑3:
parec
如果没有提供文件名,则将数据发送到 stdout会导致终端混乱。此外parecord
,显然必须运行它,以便它能够自动转换为指定的文件类型:这应该会给你一个有效的 WAV 格式的音频文件,你可以播放它。很抱歉给你带来不便,但我自己很少使用这些工具;请查看 parecord(1) 手册页。
您可能需要暂时将其移开,以查看这些设置是否有效,即:
还需要“重新启动”(而不是停止)pulseaudio;当程序尝试与其通信时,它应该自动重新激活:
我认为上述命令之一应该是正确的命令;我正在运行 24.04 并且正在使用
pipewire
,因此我没有简单的方法来测试这个,而且自从我上次需要这些已经有一段时间了,很抱歉。这里似乎有一个重要的拼写错误;它是“--changed”,没有空格,因为它是一个选项,并且在这种情况下很重要,以便只显示与供应商版本有实际差异的软件包。“试过这个: parecord mic-capture.wav,它记录了静态。我基本上按照你的建议移动了文件。不是它根本没有记录任何东西,即使文件被放回原处。一个新的 cookie 被覆盖了,这可能是问题所在。
音频文件仍然为空。”
它真的是空的还是包含静态的?这是有区别的。同样重要的是,对的任何更改
~/.config/pulse
都应重新启动 pulseaudio (pactl exit
),否则您将处于陈旧状态。您还应该再次检查默认源。