AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1540011
Accepted
juggler
juggler
Asked: 2025-01-31 03:07:16 +0800 CST2025-01-31 03:07:16 +0800 CST 2025-01-31 03:07:16 +0800 CST

Ubuntu 20.04 无法识别耳机麦克风

  • 772

[我已接受此答案,以感谢为调试付出大量努力的人。不要搜索它来寻找明确的答案,没有答案。我把耳机带回商店,它就正常工作了。就像魔术一样。我仍然不知道为什么。我回去是因为我们得出结论,问题可能根本不是 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

更有趣,也更长。将包括几张屏幕截图(请注意后两张故意重叠的截图):

pactl 输出 1 pactl 输出 2 pactl 输出 3

所以,显然,“某物”确实看到了耳机麦克风......所以我们取得了一些进展......

(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;但它支持交互模式,通过不带参数运行它,您可以“探索”。[/编辑]

20.04
  • 1 1 个回答
  • 83 Views

1 个回答

  • Voted
  1. Best Answer
    PeeWee
    2025-01-31T04:23:34+08:002025-01-31T04:23:34+08:00

    我的第一个建议是检查 pulseaudio 配置(pavucontrol, pulsemixer)。设备的配置文件应设置为名称中带有“Duplex”(即同时播放和录制)的配置文件,例如“Analog Stereo Duplex”。

    另外,Chromium 很容易实现,而且限制可能太严格了snap connect chromium:audio-record。

    但除非你更详细地说明你实际尝试过什么以及结果如何,否则没人能帮你什么忙。如果你回答说你已经尝试过我的建议,那完全取决于你。

    编辑(针对 OP 中最近的更改):pulsemixer 和 pavucontrol 的屏幕截图确实显示了相同的状态,只是 pulsemixer 认为仅命名活动设备(“内置模拟立体声”)就足够了,它是默认源(请注意名称前面的“*”)。此外,pavucontrol 和声音设置的电平表确实表明存在实际输入信号,可能是您对着麦克风的呼吸;尝试对着麦克风说话,观察条形图移动(即声音设置>输入>“耳机麦克风内置音频”:下面的条形图显示当前录音信号电平)。

    因此,测试中的录音是问题所在。尝试使用 的parecPulseaudio 模拟程序arecord。在运行 pulseaudio 时,切勿使用 alsa 工具,因为后者可能对设备有独占锁定或重定向流,因此它不会到达预期的位置。

    但是,在我继续说下去之前,我要澄清一下:你不是说过重新安装 pulseaudio 后麦克风可以正常工作了吗?因为如果是这样,你进一步的测试可能只会再次走上错误的道路。赢得胜利。;-) 我也是凭经验告诉你,有时最好让它搁置一段时间,然后重新振作起来。你不会相信我经历了多么大的挫折,后来才发现我才是自己最大的障碍,可以说是遮天蔽日。

    EDIT2:关于 kernel.org 程序:这应该不是必需的,除非您已经弄乱了一些文件,这是大忌(/home、/etc 和 /usr/local 之外的任何东西都是发行版区域,永远不应手动修改)。但修复此问题的正确方法是使用debsums:

    $ sudo apt install debsums
    $ sudo debsums --all --changed | tee debsums-changed.log
    

    如果发现文件的校验和存在一些差异,而这些差异不是用户可更改的,则只需重新安装相应的包:

    $ sudo apt reinstall <broken-package> ...
    

    需要注意的是,debsum --all还要检查配置文件是否与供应商版本不同,这在技术上不算错误,因此不要仅仅因为更改了 /etc 中的某些配置就重新安装,而是要检查它是否与音频有一点点关系。如果您随后想要重新安装原始版本,则需要将配置文件移开,否则 apt 将不会覆盖它(但是 /etc 之外的所有其他文件,即 /usr/bin 中的文件对 apt 来说都是公平的,因此不要删除 /etc 之外的任何文件;只需运行重新安装并使用 debsums 进行仔细检查即可)。

    编辑3:

    parec 的输出:(很有趣,但又有点紧张,伴随着一系列音频信号)

    parec如果没有提供文件名,则将数据发送到 stdout会导致终端混乱。此外parecord,显然必须运行它,以便它能够自动转换为指定的文件类型:

    parecord mic-capture.wav
    

    这应该会给你一个有效的 WAV 格式的音频文件,你可以播放它。很抱歉给你带来不便,但我自己很少使用这些工具;请查看 parecord(1) 手册页。

    我弄乱了 /home/.config/pulse,就是这样,进入文件管理器中的文件结构并修改它。那些文件似乎都又在那里了。

    您可能需要暂时将其移开,以查看这些设置是否有效,即:

    mv ~/.config/pulse{,.bak}
    

    还需要“重新启动”(而不是停止)pulseaudio;当程序尝试与其通信时,它应该自动重新激活:

    pulseaudio -k
    pactl exit
    echo quit | pacmd
    

    我认为上述命令之一应该是正确的命令;我正在运行 24.04 并且正在使用pipewire,因此我没有简单的方法来测试这个,而且自从我上次需要这些已经有一段时间了,很抱歉。

    sudo debsums --all -- 已更改 | tee debsums-changed.log

    这里似乎有一个重要的拼写错误;它是“--changed”,没有空格,因为它是一个选项,并且在这种情况下很重要,以便只显示与供应商版本有实际差异的软件包。“试过这个: parecord mic-capture.wav,它记录了静态。我基本上按照你的建议移动了文件。不是它根本没有记录任何东西,即使文件被放回原处。一个新的 cookie 被覆盖了,这可能是问题所在。

    (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
    

    音频文件仍然为空。”

    它真的是空的还是包含静态的?这是有区别的。同样重要的是,对的任何更改~/.config/pulse都应重新启动 pulseaudio ( pactl exit),否则您将处于陈旧状态。您还应该再次检查默认源。

    pactl list sources
    pactl get-default-source
    
    • 2

相关问题

  • 如何在 18.04..20.04 上设置本地通配符 (127.0.0.1) 域解析?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve