Я не уверен, заслуживает ли это отдельного ответа.Я использовал ответ 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
Примечание: Вышесказанное относится к таким устройствам, как "hw: 0,0" и "hw: 3" ... было довольно сложно найти, как обеспечить стабильные номера устройств длямои различные USB звуковые устройства, я нашел инструкции здесь в разделе «Заказ нескольких карт одного типа».Конфигурация состоит из одной строки в файле в /etc/modprobe.d/
.Вот так я получаю цифры, такие как 0 и 3, чтобы ссылаться на одни и те же устройства при перезагрузке.