我正在运行带有pulseaudio的CentOS 7。由于显示器固件中的错误,我必须通过显示端口音频以 24 或 32 位发送音频(而不是 16 位,这会导致显示器上出现音频故障)。
如何知道 Linux 当前使用的音频分辨率?我怎样才能将其强制为 24/32 位?
答案1
想不出一个简单的方法来做到这一点。
我会尝试使用hw
或slave
ALSA插件用于强制格式为 24/32 位。首先直接使用 ALSA 进行测试,并停止 Pulseaudio(pasuspender
等等aplay -D
)。然后使用module-alsa-sink
脉冲音频模块为其创建一个 Pulseaudio 接收器 ( pacmd load-module
)。如果这没有自动发生,您可能需要修改module-udev-detect
调用以忽略旧的 ALSA 硬件。/etc/pulse
(非常一般的建议,我必须自己尝试一下才能获得逐步描述)。
pacmd list-sinks
并且pacmd list-sink-inputs
有一个sample spec
指定使用的位宽的字段,但我不确定考虑到所涉及的各个地方的各种转换,该字段的准确性如何。
答案2
我怎样才能将其强制为 24/32 位?
在/etc/pulse/daemon.conf
集合中
default-sample-format = s24ne