Я не уверен, что это заслуживает отдельного ответа. Я использовал ответ HSC и примеры из "ALSA Wiki - The Dmix Howto". Документация Dmix действительно немного разочаровывает.
Вот пример ~/.asoundrc
, который работает для меня. Раздел «привязки» не нужен, но в HOWTO сказано, что он помогает «многоканальным чипам работать быстрее» (не уверен, что меня это волнует?). Если я связываю "0 1 1 0", то он переключает правый/левый каналы. Если привязать "0 1 1 1" то фигня в правое ухо... Видимо ipc_key
обязательный параметр; Я просто выбрал случайное целое число.
# example 1
pcm.hw3mix {
type dmix
ipc_key 1939 # must be unique
slave {
pcm "hw:3"
period_time 0
period_size 1024 # must be power of 2
buffer_size 4096
rate 44100
}
bindings {
0 0
1 1
}
}
pcm.!default hw3mix
Последняя строка делает мой новый hw3mix
устройством по умолчанию.
Я упростил вышеизложенное до:
# example 2
pcm.hw3mix {
type dmix
ipc_key 1939 # must be unique
slave { pcm "hw:3" }
}
pcm.!default hw3mix
и, кажется, работает просто отлично.
Как было предложено по ссылке ALSA Wiki выше, я могу упростить ее до:
# example 3
pcm.dsp0 {
type plug
slave.pcm "dmix"
}
pcm.!default dsp0
и это может быть дополнительно упрощено до:
# example 4
pcm.!default {
type plug
slave.pcm "dmix"
}
или даже:
# example 5
pcm.!default plug:dmix
Однако последние три примера не позволяют мне указать параметры для плагина Dmix. Я хотел создать устройство, которое смешивает несколько потоков в "hw:3". Я думаю, что это должно быть указано как параметр для Dmix, так как это не устройство по умолчанию, поэтому я пошел со своим вторым примером выше. В моем реальном ~/.asoundrc
также есть блок для "hw:0,0" под названием "hw0mix", поэтому, изменив комментарии в следующих строках, я могу переключать вывод (вновь созданных) потоков между наушниками и динамиками:
#pcm.!default hw0mix
pcm.!default hw3mix
NB: Вышеупомянутое относится к таким устройствам, как «hw: 0,0» и «hw: 3» ... было немного сложно выяснить, как обеспечить стабильные номера устройств для моих различных звуковых USB-устройств, я нашел инструкции здесь в разделе "Заказ нескольких карт одного типа". Конфигурация состоит из одной строки в файле /etc/modprobe.d/
. Вот как я получаю числа, такие как 0 и 3, для обозначения одних и тех же устройств при перезагрузке.
person
Metamorphic
schedule
26.11.2016