为什么我不能播放来自两个或更多来源的音频?

为什么我不能播放来自两个或更多来源的音频?

当我在桌面上安装 mpd 和 mpc 时,我发现当 mpc 或其他客户端播放音乐时,我无法听到其他来源(如 Amarok、Flash 播放器等)。如果我尝试在两个选项卡中使用两个 Flash 播放器启动音频流,我也会遇到同样的问题。

如何解决?
我已经使用默认系统设置和 Jackd 安装了 PulseAudio。如何配置它以用于多个声源?

gigam@bird:~$ aplay -l
播放硬件设备列表
卡 0:Intel [HDA Intel],设备 0:ALC888 Analog [ALC888 Analog]
子设备:1/1
子设备 #0:子设备 #0 卡 0:Intel [HDA Intel],设备 1:ALC888 Digital [ALC888 Digital] 子
设备:1/1
子设备 #0:子设备 #0
卡 1:NVidia [HDA NVidia],设备 3:HDMI 0 [HDMI 0]
子设备:1/1
子设备 #0:子设备 #0
卡 1:NVidia [HDA NVidia],设备 7:HDMI 0 [HDMI 0]
子设备:1/1
子设备 #0:子设备 #0
卡 1:NVidia [HDA NVidia],设备 8:HDMI 0 [HDMI 0]
子设备:1/1
子设备 #0:子设备 #0
卡 1: NVidia [HDA NVidia],设备 9:HDMI 0 [HDMI 0]
子设备:1/1
子设备 #0:子设备 #0

我正在使用 ALSA 和 PulseAudio,因为它是自动安装的。

PS 嗯...我又发现了一个来自 PulseAudio 的错误:pacmd:

>> load-module module-alsa-sink
模块加载失败。

但是在目录“/usr/lib/pulse-2.0/modules”中我有它:module-alsa-sink.so

答案1

尝试发布的解决方案这里. 将这些行添加到 /etc/asound.conf:

pcm.pulse {
    type pulse
}
ctl.pulse {
    type pulse
}
pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
}

答案2

您遇到的实际问题是 —— 可能 ——mpd默认配置为使用 ALSA。您知道mpd有一个 PulseAudio 后端吗?请查看/etc/mpd.conf

无论如何,如果您只是在本地播放音乐,mpdmpc是一种愚蠢的播放音乐的方式。mpd它实际上是为网络流媒体设计的,就像运行流媒体广播电台一样。还有许多其他程序将原生使用 PulseAudio,例如 Rhythmbox,它不需要任何配置。

Safe ALSA Subset如果您有使用并遵守 libasound2 插件层配置的程序,@terdon 的回答应该会有所帮助。但是,如果任何一个程序尝试打开hw:0或类似的直接到硬件的 ALSA 设备,它将阻止 PulseAudio 正常工作,并阻止对声音设备的所有其他访问。

我也不知道你为什么要使用jackd,因为这通常只用于高端音频工作,例如数字音频工作站 (DAW)。安装它可能不会激活它(幸运的是),否则你会遇到更大的麻烦。

你帖子中的一些内容让我认为你正在做这件事太难了

  • 您“安装”了 PulseAudio。为什么它不是默认安装的?
  • 您“安装”了jackd。是什么让您认为这样做是个好主意?您需要运行一个程序吗?仅有的在 JACK 上运行,例如 Ardour2?
  • 您似乎需要使用诸如 之类的配置文件/etc/asound.conf。这实际上没有必要。

听起来你正在尝试运行一个非常非常老的 Debian 版本。说实话,任何不是来自至少2011 年(Debian Squeeze 不算)的开箱即用音频体验并不好。我的建议是使用 Ubuntu、Linux Mint、OpenSUSE 或 Fedora 的最新稳定版本。

旧版本的 Debian(以及其他发行版)的开箱即用音频体验非常差,无法“正常工作”,必须手动配置。因此,你必须安装PulseAudio 自 2008 年起在发行版中默认发布并启用,它会告诉我你正在运行古老的操作系统。它是免费的;您应该升级,而不是尝试手动重新做过去 5 年来经过大量研究和开发而完美完成的发行版。

相关内容