首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ubuntu20.04只通过HDMI监视器播放声音

Ubuntu20.04只通过HDMI监视器播放声音
EN

Ask Ubuntu用户
提问于 2020-06-14 10:59:27
回答 2查看 3.5K关注 0票数 4

我的ubuntu桌面不播放任何声音通过扬声器,连接到声卡。它总是通过HDMI显示器播放,就像它是唯一连接的声音播放设备。

我有这些设置,它仍然通过HDMI监视器播放。

当我把耳机插上电源时,系统会在“输出设备”中看到它,但声音仍然会通过HDMI。

当我移除HDMI监视器(它是我的辅助监视器)时,声音就可以正常工作了。

UPD

代码语言:javascript
复制
cat /proc/asound/cards

 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xdf220000 irq 126
 1 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xdf080000 irq 17

你能帮上忙吗?

EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2020-06-14 11:15:50

最新情况:

我在我的一个项目中找到了一个脚本来强制模拟输出(在bash-compliant shell中以-compliant形式运行它):

代码语言:javascript
复制
aplay -l|grep Analog|grep -v Digital|sed 's/^card /defaults.pcm.card /g;s/:.\+device /\ndefaults.pcm.device /g'|cut -d":" -f1 > /etc/asound.conf 

这将为/etc/asound.conf添加一个军备条目。

票数 5
EN

Ask Ubuntu用户

发布于 2022-04-10 20:02:44

found是一个更好的选项

如下面所述,使用systemd在启动时起作用,但在将设备插入已经在运行的系统时则不起作用。

要想在热插拔和启动时忽略音频,udev规则是更好的选择.

改编自告诉脉冲音频使用udev忽略USB设备

  1. 使用lsusb标识您想忽略$ lsusb总线006设备003: id 17e9:4307 DisplayLink LAPDOCK #<其他设备的供应商/产品ID -- about> -- ID部件给了我们神奇的数字
  2. 创建一个udev规则文件,例如为脉冲音频设置环境变量的/etc/udev/rules.d/80-ignore-audio-cards.rules。对于我来说,这看起来像: ATTRS{idVendor}=="17e9",ATTRS{idProduct}=="4307",ENV{PULSE_IGNORE}="1“,我任意地为文件名选择了80-前缀。如果您有任何与脉冲音频相关的规则,请确保新文件以较低的数字开头。
  3. 重新启动以确保其生效

在udev规则到位后,脉冲音频完全忽略了设备。

先前的答复:

遇到同样的问题,给出的答案对我来说在重新开始的时候都不起作用。我认为我的问题是对卡片的延迟检测;当脉冲音频启动时,它没有看到所有的卡片,module-switch-on-connectmodule-switch-on-port-available的某些组合总是重置我的选择。

我通过在登录时创建一个系统用户单元来运行pactl set_card_profile "$MY_CARD_NAME" off来解决这个问题。

  1. 找出你不想要的卡的名字;希望名称应该足以说明哪一个:$ pactl列表卡\ grep‘(卡名:)’alsa_card.usb-DisplayLink_LAPDOCK_U3D2338486250-02 #0名:alsa_card.usb-DisplayLink_LAPDOCK_U3D2338486250-02卡#1名: alsa_card.pci-0000_01_00.1卡#2名: alsa_card.usb-Plantronics_Plantronics_Blackwire_5220_Series_2961D11C621649939CED8BF57E910BA5-00卡#3名: alsa_card.usb-HD_Web_Camera_HD_Web_Camera_Ucamera001-02卡号:alsa_ Card . For 0000_001f.3,是"LAPDOCK“一直在偷我的音频。
  2. 创建systemd单元,调用pactl并禁用卡:$ mkdir -p ~/..config/systemd/user$ nano ~/..config/systemd/user/disable-chars.service添加这些内容,更改ExecStart行以引用您想要删除的卡: Description=Disable卡Type=simple重新启动=on-failure ExecStart=pactl set-ExecStart=pactl set-profile
  3. 启用服务:systemctl --user enable disable-cards

现在,当您重新启动时,systemd将继续尝试断开该卡,直到它成功。在插入监视器后,可能有更好的systemd配置来运行该配置;每个设备都显示为一个“单元”(例如,在systemctl --user的输出中),因此可以在插入/拔出插头时对其进行改进。

另一种选择是将您的/etc/pulse/default.pa更改为使用module-switch-on-connect blacklist="REGEX_MATCHING_THE_CARD_NAME",但这对我不起作用;无法自定义module-switch-on-port-available,我认为这就是我选择它的原因。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1250206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档