Libertine 容器声音在一台机器上不起作用,在另一台机器上起作用

Libertine 容器声音在一台机器上不起作用,在另一台机器上起作用

我负责管理两台机器,A 和 B。B 是一台非常老旧的机器,我在上面安装了 Libertine 中的应用程序,声音效果非常好。另一方面,在机器 A 上,Libertine 容器的声音根本不起作用。我该如何诊断这个问题?

有趣的是,在机器 A 上,我在 16.10 之前创建了自己的非特权 LXC 容器,声音在其中可以工作,并且在升级后继续工作;但它在全新安装 16.10 上使用相同 LXC 的 Libertine 上不起作用。

笔记

  • 两台机器都是 Ubuntu 原版,只libertine安装libertine-scope
  • 仅针对 hibernate 的 conf 文件gtk3进行了编辑
  • 声音设置中的声音测试有效,只有容器声音无效

编辑

我尝试speaker-test在容器中运行。它在主机上运行产生正确的声音,但在容器上显示此错误:

$ libertine-launch container-name speaker-test -t wav -c 6

speaker-test 1.1.2

Playback device is default
Stream parameters are 48000Hz, S16_LE, 6 channels
WAV file(s)
ALSA lib pcm_dmix.c:1041:(snd_pcm_dmix_open) unable to open slave
Playback open error: -2,No such file or directory

答案1

一些研究表明,许多较新的系统(机器 A)通常都具有默认设置的 HDMI。您的较旧系统(机器 B)可能只有模拟音频,因此这是其默认设置。

发出命令aplay -l来获取音频设备列表,您应该得到类似这样的输出:

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: ALC887-VD Analog [ALC887-VD Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 1: ALC887-VD Digital [ALC887-VD Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

这个输出应该可以帮助您确定哪张卡是您想要作为输出的默认卡。

查看您需要哪个音频输出(卡 0 设备 0 是 alsa 默认设置,可能不是您需要的;在我的情况下,我需要指定卡 1)

使用命令在你的主目录中创建一个文件gedit ~/.asoundrc(你可以用你最喜欢的文本编辑器替换 gedit)

添加以下行:

pcm.!default {

    type hw
    card *X*
}

ctl.!default {
    type hw           
    card *X*
}

用我们之前发现的卡号替换*X*

保存文件并重试。

有更多可能适用的信息可供参考这里

编辑:我很高兴您能够在 Libertine 下让 2 个音频通道正常工作。关于您扩展的问题。您可以检查的输出amixer scontrols并确保您选择的输出支持 6 个音频通道,如果支持,请使用alsamixer确保它们均未静音,并且您处于 6 通道模式而不是 2 通道模式,如下所示。

alsamixer2channel

要更改频道模式,请alsamixer使用箭头键突出显示Channel(如上所示),然后按向上或向下箭头选择所需的模式。

资料来源:

man aplay

https://www.alsa-project.org/main/index.php/Asoundrc#The_.asoundrc_file_format

相关内容