在我的机器音频插孔或 S/PDIF 输出上播放某些内容所需的最小程序集是什么?

在我的机器音频插孔或 S/PDIF 输出上播放某些内容所需的最小程序集是什么?

问题:

播放音频时,我的音响系统听不到任何声音。

问题:

在我的机器音频插孔或 S/PDIF 输出上播放某些内容所需的最小程序集是什么?

我是怎么到那里的?

我的系统是一个最新的 Debian Stretch 系统,它是使用debootstrap.该系统是一个英特尔NUC5CPYH据说有一个英特尔 Braswell 芯片组

我跑了

apt-get install --no-install-recommends sox libsox-fmt-all

安装sox音频播放器。当我尝试播放文件时,我得到了

ALSA lib confmisc.c:767:(parse_card) cannot find card '0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM default
play FAIL formats: can't open output file `default': snd_pcm_open error: No such file or directory

sox所以,在查看了和的依赖关系之后libsox-fmt-all,我跑了

apt-get install libsndio6.1 pulseaudio

现在,当被要求这样做时,它的输出sox似乎可以很好地播放文件,只是我的音响系统上没有得到任何声音输出。 (音响系统设置得很好。)

编辑#1

的输出cat /proc/asound/cards

 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0x81414000 irq 313

编辑#2

的输出aplay -l

aplay: device_list:270: no soundcards found...

解决方案

我成功了。现在我可以说有两个问题:

  1. 我的用户没有足够的权限来访问声音设备。 (这是对另一个问题的回答告诉我。)
  2. 我的声音设备被静音了。 (我将告诉我的答案标记为“正确”)

所以,总而言之,我必须采取的步骤是

  1. apt-get install --no-install-recommends sox libsox-fmt-all alsa-utils
  2. 将我自己添加到audio群组中:usermod --append --groups audio <username>
  3. 更改 alsa 音量:alsamixer
  4. 播放歌曲soxplay <filename>

答案1

您检查过音量设置吗?系统默认设置被选择为安静或完全静音,因为人们对在新的、未配置的系统上全音量声音输出感到恼火。

由于/proc/asound/cards表明您的芯片组集成声卡的名称是“PCH”,因此请尝试以下操作(alsamixer如果需要,请先安装):

alsamixer -c PCH

这应该打开一个带有多个滑块的基于文本的混音器:使用箭头键来操纵它们。 M 键将在具有它们的通道上切换“静音”设置。

标有“PCM”的滑块需要处于最大状态才能获得正常的声音输出:“Master”滑块是用于调整整体音量级别的滑块。如果您发现名称中包含 S/PDIF 的通道,您可能需要切换其静音状态以获得 S/PDIF 输出。

找到合适的默认设置后,alsactl store以 root 身份运行以将设置保存为新的系统默认设置。

您的桌面环境还可能将音频设置从一个会话存储到另一个会话,但设置良好的系统范围默认音量永远不会有坏处。

答案2

在没有声音的系统上安装 PulseAudio已经不起作用不可能解决很多问题。此外,如果 sox 实际上需要 Pulse,它会自动与 sox 一起安装。

PulseAudio 通过 ALSA 路由声音,ALSA 控制大多数系统上的声音硬件,而 ALSA 无法检测到任何声音硬件或对其配置错误,因此您遇到的问题比安装 Pulse 所能解决的更严重。 Pulse 允许应用程序启动和运行,但没有可以找到输出音频的设备(如果我对问题的解释正确的话),因此您听不到声音。

我会暂时先卸载 PulseAudio(如果需要的话,一旦声音正常工作就安装它)。

然后,检查您的计算机上是否运行了 OSS(另一种声音系统)。如果是,它将阻止 ALSA 与音频硬件正确连接。如果是,并且您不使用 OSS,请将其删除。我的 Debian (sid) 安装上的软件包名称是oss4-base.

删除所有这些后,如果可以的话重新启动计算机,尽管除非安装了 OSS,否则这可能并不重要。

然后,运行aplay -l(包的一部分alsa-utils)并查看它的输出。在我的电脑上,它输出:

**** List of PLAYBACK Hardware Devices ****
card 0: MID [HDA Intel MID], device 0: CX20585 Analog [CX20585 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: MID [HDA Intel MID], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

如果您没有列出任何设备,则仍然遇到问题,如果没有更多信息,我不知道如何进行修复。

答案3

在我的系统上,我发现pulseaudio经常禁用唯一实际工作的音频输出。这是pulseaudio 中的一个错误,但我还没有足够详细地了解实际的错误是什么,所以我在很大程度上忽略了它。

我获得声音的方法是启动alsamixer,这是一个管理 ALSA 音量级别的 CLI 工具,然后按“F6”选择实际的 ALSA 声卡而不是损坏的虚拟脉冲音频卡,然后启用混音speaker器并将其音量从零。

相关内容