如果我从alsamixer
Nvidia 声卡中选择它根本不起作用,并且我无法提高六个项目( 、 等)的S/PDIF
音量S/PDIF 1
:
一些信息:
cat /proc/asound/cards
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xf3310000 irq 31
1 [NVidia ]: HDA-Intel - HDA NVidia
HDA NVidia at 0xf3080000 irq 17
Kernel: 5.10.0-11-amd64
Distro: Debian GNU/Linux 11 (bullseye)
要使用监听音箱,我可以只使用 ALSA 吗?
如果我开始pulseaudio
,我可以使用它们。
# pactl list short sources
1 alsa_output.pci-0000_00_1b.0.analog-stereo.monitor module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
2 alsa_input.pci-0000_00_1b.0.analog-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
5 alsa_output.pci-0000_01_00.1.hdmi-stereo-extra2.monitor module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
# pactl list short sinks
1 alsa_output.pci-0000_00_1b.0.analog-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
4 alsa_output.pci-0000_01_00.1.hdmi-stereo-extra2 module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
我pasystray
可以简单地选择水槽GP106 High Definition Audio Controller ...
,但有时它不起作用。
PA运行时如果我选择的HDA nvidia
声卡alsamixer
和以前一样。
这是/etc/asound.conf
我做的:
defaults.pcm.card 1
defaults.ctl.card 1
那是为了选择默认卡。
我可以更改正在使用的那个,alsavolume-icon
但是在它显示静音图标之后,我无法提高使用时的音量alsamixer
。
我可以让它工作吗?然后asound.conf
我将其设为默认卡。
在这里,ALSA 只提供实际硬件可以做的事情。对于 NVidia HDA 声音芯片,它只为每个 S/PDIF 数字通道(通常与 HDMI 或 DisplayPort 数字显示连接相关联)提供开/关开关。
您应该能够
alsamixer
通过按键来打开/关闭每个通道M,并使用左/右箭头键在通道之间移动。仅当声音芯片具有实际的混音器功能时,才会显示音量滑块(可使用向上/向下箭头键调节)。仅以数字格式传递声音的显示卡和其他设备可能根本没有模拟式混音器功能,因为它们通常只是用于标准格式数字音频数据的“直管”。如果您的意思是在使用 PulseAudio 时甚至看不到屏幕截图中的显示,请尝试显式设置声卡号,即
alsamixer -c 0
和alsamixer -c 1
。使用 Debian 当前的默认配置,如果您使用 PulseAudio,
alsamixer
不带选项运行只会显示 PulseAudio 的主音量控制,而不会显示其他任何内容。但是,如果您指定声卡编号,您仍然可以访问 ALSA 驱动程序提供的设置。PulseAudio 引入了软件混音功能,允许您通过使用 CPU 修改数字声音数据流以使其更柔和或更大声来调整音量,或者将来自多个源的声音混合到单个输出中,即使流将要技术上只接受线路级声音数据流的输出设备,如 HDMI 音频通道。
PulseAudio 还会在需要时进行采样率转换:如果您的监视器仅支持单一采样率,则 ALSA 驱动程序层将拒绝播放任何使用不同采样率的声音数据的尝试。
从技术上讲,ALSA也可以进行软件混音和采样率转换,只是 ALSA 调整软件混音的方式通常涉及编辑
.asoundrc
文件,而 PulseAudio 允许轻松动态重新配置,即使在播放声源时也是如此。结果,alsa-lib
用于此目的的使用已失宠,而 PulseAudio 基本上已取而代之。ALSA过去分为三个主要部分:
alsa-driver
:实际的声卡驱动程序(现在集成到 Linux 内核中)alsa-lib
:用于使用驱动程序的通用库,可使用.asoundrc
.alsa-tools
:用户空间工具,如、alsamixer
等。aplay
arecord
HDMI 显示器和许多 USB 连接的声音设备只接受一组离散的采样频率,因此在需要时自动转换采样率的能力变得越来越重要。这似乎是另一个
alsa-lib
失宠的原因。要使用 ALSA 驱动程序接口选择声卡,您需要通过卡和设备编号(请参阅
aplay -l
可用选项)或输出设备名称(aplay -L
分别参阅)指定设备。不幸的是,将声卡和设备编号或 ALSA 设备名称输入到使用 ALSA 驱动程序接口的应用程序的确切方法因应用程序而异:一些应用程序仅接受名称,其他应用程序只能使用数字。命令行选项或配置项名称也因应用程序而异:对于您期望它如何完成没有单一的公认约定。
大多数直接使用 ALSA 的应用程序都可以选择输出设备(通过命令行选项或通过配置对话框)。
您还可以在系统范围 ( ) 或每个用户 ( ) 中创建asoundrc配置文件,您可以在其中设置默认设备。
/etc/asound.conf
$HOME/.asoundrc
选择其中的声卡
alsamixer
仅用于获取此声卡的混音器设置。它不会使声卡成为默认设置,也不会影响其他任何东西。如果您安装了 Pulseaudio,通常您还有一个将
pulse
伪设备指定为默认设备的 asoundrc 文件,因此这可能与您想要单独使用 ALSA 执行的操作相冲突。调试 asoundrc 问题的帮助:My
~/.asoundrc
has为卡 2选择自动
plughw
,由 确定aplay -L
。您可能需要卡 1。从那一行开始,测试它是否可以在aplay
没有-D
. 如果有效,请添加该ctl
部分。如果你的编解码器(声音硬件芯片)没有音量控制,那么它就没有音量控制,所以你不能改变音量。
你可以在前面放一个“软件音量控制”:
也许您也可以将
plughw
与符号卡名称一起使用,但我自己没有尝试过。正如 dirkt 所说,您需要调试您的
.asoundrc
.用于
aplay -L
列出所有定义的 PCM。使用他们的配置时,只允许流式传输。
在我的情况下
pcm.!default "plughw:1,8"
,有正确的价值观。虽然此配置允许更多流:
你会看到一个新
Master
的,alsamixer
但它是没有意义的,你只能静音S/PDIF
发出声音的那个。你可以设置音量级别,而不是 Nvidia。 使用该软件包,您可以更改显示器设置。
Intel HDA
ddcutil
某些应用程序可能无法工作
apulse
包可能会解决此问题。或者你可以试试
pipewire
https://wiki.debian.org/PipeWire。