我正在使用 Ubuntu 14.04 LTS 笔记本电脑在聚会上播放音乐。我正在使用 Mixxx,它对于该任务表现得非常好。现在我想添加一些灯光效果并计划使用 Qlcplus。所以我需要将Mixxx的声音发送到声卡和Qlcplus。
我已经成功配置 Mixxx 以将声音发送到 ALSA 环回并在 Qlcplus 中从那里恢复它。但后来我没有声音输出。如何将声音从 ALSA 环回路由至扬声器?
答案1
经过大量搜索后,我找到了我的问题的答案。您需要正确配置 ALSA,它将提供一个新设备,将发送给它的声音复制到两个或多个设备,例如声卡和环回设备。
这里是我使用的 .asoundrc 文件:
# If you want this to be the default, then you
# need to override the default device and provide
# a playback path to the CardAndLoop and a capture
# path to whatever soundcard you have (here the 1st card)
#pcm.!default {
# type asym
# playback.pcm "CardAndLoop"
# capture.pcm "hw:0,0"
#}
# This is the interface you use for sound output
# It will send the output to the soundcard and loopback device
pcm.CardAndLoop {
type plug
slave.pcm MultiCh
route_policy "duplicate"
}
# Virtual multichannel device with four channels
# two the for the soundcard, two for the loopback
pcm.MultiCh {
type multi
slaves.a.pcm pcm.MixCard
slaves.a.channels 2
slaves.b.pcm pcm.MixLoopback
slaves.b.channels 2
bindings.0.slave a
bindings.0.channel 0
bindings.1.slave a
bindings.1.channel 1
bindings.2.slave b
bindings.2.channel 0
bindings.3.slave b
bindings.3.channel 1
}
# Mixer for the soundcard
pcm.MixCard {
type dmix
ipc_key 1024
slave {
# pcm "hw:Conectiv,0"
pcm "hw:PCH,0"
# rate 48000
rate 44100
periods 128
period_time 0
period_size 1024 # must be power of 2
buffer_size 8192
}
}
# Mixer for the loopback
pcm.MixLoopback {
type dmix
ipc_key 1025
slave {
pcm "hw:Loopback,0"
# rate 48000
rate 44100
periods 128
period_time 0
period_size 1024 # must be power of 2
buffer_size 8192
}
}
该文件将提供新的 ALSA 声音设备“CardAndLoop”。如果您在声音应用程序中选择此设备,声音将被发送到“PCH”声卡和环回设备。您可以启动第二个应用程序并使用环回设备作为输入,它将获取第一个应用程序播放的声音。
我用名称来命名声音设备。这些名称可以从 /proc/asound/cards 文件中获取:
$ cat /proc/asound/cards
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xf5330000 irq 44
2 [Loopback ]: Loopback - Loopback
Loopback 1
玩得开心 !