ALSA: устройства PCM и asoundrc
Я пытаюсь записать воспроизводимый в данный момент звук с помощью alsa snd-aloop. Вот мой asound.conf.
pcm.multi {
type route;
slave.pcm {
type multi;
slaves.a.pcm "output";
slaves.b.pcm "loopin";
slaves.a.channels 2;
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;
}
ttable.0.0 1;
ttable.1.1 1;
ttable.0.2 1;
ttable.1.3 1;
}
pcm.!default {
type plug
slave.pcm "multi"
}
pcm.output {
type hw
card 0
}
pcm.loopin {
type plug
slave.pcm "hw:1,0,0"
}
pcm.loopout {
type plug
slave.pcm "hw:1,1,0"
}
Теперь, когда я запускаю такую команду:
play sound.mp3
а также:
arecord -c 2 -f S16_LE -r 48000 -D loopout test.wav
Звук воспроизводится на звуковой карте 0 и записывается как test.wav. Теперь мой PCM по умолчанию направляет звук для зацикливания вывода.
Но когда я перечисляю устройства PCM:
aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
sysdefault:CARD=ALSA
bcm2835 ALSA, bcm2835 ALSA
Default Audio Device
sysdefault:CARD=Loopback
Loopback, Loopback PCM
Default Audio Device
front:CARD=Loopback,DEV=0
Loopback, Loopback PCM
Front speakers
surround21:CARD=Loopback,DEV=0
Loopback, Loopback PCM
2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Loopback,DEV=0
Loopback, Loopback PCM
4.0 Surround output to Front and Rear speakers
surround41:CARD=Loopback,DEV=0
Loopback, Loopback PCM
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Loopback,DEV=0
Loopback, Loopback PCM
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Loopback,DEV=0
Loopback, Loopback PCM
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Loopback,DEV=0
Loopback, Loopback PCM
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
Я не вижу добавленный PCM от asound.conf Это нормально? Моя проблема заключается в том, что у меня есть приложение, настроенное с использованием этого списка, которое не использует мой PCM по умолчанию.
1 ответ
Решение
aplay -L
могут показывать только те устройства, которые определяют такую строку описания.
(Это несколько недокументировано.)
pcm.multi {
...
hint.description "My Little Device"
}