![Linux - 如何通过命令行通过后插孔播放声音文件](https://linux22.com/image/83152/Linux%20-%20%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E5%91%BD%E4%BB%A4%E8%A1%8C%E9%80%9A%E8%BF%87%E5%90%8E%E6%8F%92%E5%AD%94%E6%92%AD%E6%94%BE%E5%A3%B0%E9%9F%B3%E6%96%87%E4%BB%B6.png)
所以最近我遇到了旧的 Ubuntu 登录声音,我决定添加它。所以我添加了它,它播放正常,但我有一个问题。通常,我通过电脑前面的音频插孔插入耳机,99.99% 的人都知道,当您在该插孔中插入某些东西(如耳塞或耳机)时,它会覆盖后面的主要插孔,可能连接常规扬声器系统的位置(对于桌面用户)。如何在命令行上通过该声音设备/插孔播放该文件?
答案1
有多种方法可以实现这一点。
如果前置音频插孔按照 AC-97 标准接线,并且主板仅支持该标准,则它会包含一个机械开关,该开关会中断到后置插孔的音频路径,因此在不修改硬件的情况下无法覆盖它。
较新的主板使用 HD-Audio 接线标准,该标准使用前置音频插孔中的机械开关仅向系统指示是否插入了任何东西,而实际的声音信号路由由软件控制。在许多现代声音芯片中,ALSA 声音驱动程序将提供“自动静音模式”控件,可用于配置在前面插入耳机时后部插孔输出是否静音。
如果您安装了 PulseAudio,大多数混音器工具默认只会显示 PulseAudio 的简化混音器。在这种情况下,您需要访问由 ALSA 控制的底层硬件混音器。使用alsamixer
和amixer
命令,您可以通过添加选项来执行此操作-cN
,其中 N 是一个从 0 开始的数字,用于标识您的声卡。您可以先使用交互式工具alsamixer
找到要调整的正确设置,然后编写一个脚本,该脚本首先使用基于命令行的脚本amixer
关闭自动静音,然后使用aplay
或任何命令行音频播放器播放声音,并可选择amixer
再次将自动静音模式重置为您希望它通常具有的任何状态。
但如果你想播放登录声音仅有的当播放与耳机不同的内容时,通过后插孔,这将需要一个声音芯片,将后插孔视为与前耳机输出完全分开的立体声输出通道,而不仅仅是主“左”耳机输出的备用输出路线+ 右”输出通道。根据我的经验,大多数声音芯片都倾向于使用后一种设计,因此从耳机中播放一种声音,同时从后部输出播放另一种声音可能是不可能的。