我的权限范围内有两台机器,A 和 B。B 是一台非常老的机器,我在 Libertine 上安装了应用程序,声音运行良好。另一方面,在机器 A 上,声音根本不适用于 Libertine 容器。我该如何诊断?
有趣的是,在机器 A 上,我在 16.10 之前创建了自己的非特权 LXC 容器,声音确实可以工作,升级后继续工作;但它不适用于在全新 16.10 安装中使用相同 LXC 的 Libertine。
笔记
- 两台机器都是完整的 Ubuntu,只有
libertine
并且libertine-scope
已安装 - 只有 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
一些研究表明,许多较新的系统(机器 A)通常具有默认设置的 HDMI。您的旧系统(机器 B)可能只有模拟音频,因此这是该系统的默认设置。
发出命令
aplay -l
以获取音频设备列表,您应该获得类似于以下内容的输出:此输出应帮助您确定要作为默认输出的卡。
查看并查看您需要哪个音频输出(卡 0 设备 0 是 alsa 默认值,可能不是您需要的;在我的情况下,我需要指定卡 1)
使用命令在您的主目录中创建一个文件
gedit ~/.asoundrc
(随意用您喜欢的文本编辑器替换 gedit)添加以下行:
用我们之前发现的卡号代替
*X*
保存文件并重试。
更多可能适用的信息可在此处获得
编辑:我很高兴您能够在 Libertine 下获得 2 个音频通道。关于您的扩展问题。您可以检查输出
amixer scontrols
并确保您选择的输出支持 6 个音频通道,如果支持,请使用alsamixer
确保它们都没有静音,并且您处于 6 通道模式而不是 2 通道模式,如下所示。要更改通道模式,
alsamixer
请使用箭头键突出显示Channel
如上所示,然后向上或向下箭头选择所需的模式。资料来源:
man aplay
https://www.alsa-project.org/main/index.php/Asoundrc#The_.asoundrc_file_format