Вывод ALSA на два устройства dmix одновременно с использованием нескольких устройств

я пытаюсь воспроизводить аудио на двух аппаратных устройствах одновременно,megalodon и analog, используя два устройства dmix. megalodon - Это USB гарнитура, analog как раз порт 3.5 мм на моем компьютере. Когда я направляю аудио в dmix для megalodon под названием headsetout, а также направить его непосредственно к analog, он работает просто отлично. Однако, если я направлю его на оба headsetout и analogout (dmix для analog) получаю ошибку ALSA lib pcm_params.c:2162:(snd1_pcm_hw_refine_slave) Slave PCM not usable. Если выводить только analogout, либо играть в него прямо или создание устройства с несколькими выходами, которое выводит только analogout он работает просто отлично.

как я могу сделать вывод как headsetout и analogout работать правильно?

вот соответствующие части моего asound.conf, чтобы было легче понять, что происходит.
Кроме того, я пробовал оборачивать устройства dmix в plug устройств, поскольку они находятся в ниже конфигурации, а также использовать их напрямую, без толку.

pcm.megalodon {
    type hw
    card "Megalodon"
}

pcm.analog {
    type hw
    card "PCH"
    device 0
}

#Play to headphones and earbuds
pcm.splitout {
    type plug
    slave.pcm {
        type multi
        slaves {
            a { channels 2 pcm "headsetout" }
            b { channels 2 pcm "analog" }
        }
        bindings {
            0 { slave a channel 0 }
            1 { slave a channel 1 }
            2 { slave b channel 0 }
            3 { slave b channel 1 }
        }

    }
    ttable [
        [ 1 0 1 0 ]
        [ 0 1 0 1 ]
    ]
}

#Theoretically play to headphones and earbuds
#this one doesn't work
#error:
#ALSA lib pcm_params.c:2162:(snd1_pcm_hw_refine_slave) Slave PCM not usable
#aplay: set_params:1204: Broken configuration for this PCM: no configurations available
#
#However, analogout works when used on it's own
pcm.splitout1 {
    type plug
    slave.pcm {
        type multi
        slaves {
            a { channels 2 pcm "headsetout" }
            b { channels 2 pcm "analogout" }
        }
        bindings {
            0 { slave a channel 0 }
            1 { slave a channel 1 }
            2 { slave b channel 0 }
            3 { slave b channel 1 }
        }

    }
    ttable [
        [ 1 0 1 0 ]
        [ 0 1 0 1 ]
    ]
}

#dmix output for headphones
pcm.headsetout {
    type plug
    slave.pcm {
        type dmix
        ipc_key 192959
        ipc_key_add_uid true
        ipc_perm 0666
        slave {
            pcm "megalodon"
            rate 48000
            channels 6

            period_time 0
            period_size 1024
            buffer_time 0
            buffer_size 16384
        }
    }
}

#dmix output for analog jack (3.5mm)
pcm.analogout {
    type plug
    slave.pcm {
        type dmix
        ipc_key 3785682
        ipc_key_add_uid true
        ipc_perm 0666
        slave {
            pcm "analog"
            rate 48000
            channels 2

            period_time 0
            period_size 1024
            buffer_time 0
            buffer_size 16384
        }
    }
}
14
задан Unknownloner
28.03.2023 5:28 Количество просмотров материала 2451
Распечатать страницу

1 ответ

я решил просто попробовать бросать различные плагины на проблему, и я был в состоянии исправить это с upmix. У меня сложилось впечатление, что type plug уладил бы это для меня, но это не так.

перед:

#dmix output for headphones
pcm.headsetout {
    type plug
    slave.pcm {
        type dmix
        ipc_key 192959
        ipc_key_add_uid true
        ipc_perm 0666
        slave {
            pcm "megalodon"
            rate 48000
            channels 6

            period_time 0
            period_size 1024
            buffer_time 0
            buffer_size 16384
        }
    }
}

после:

#dmix output for headphones
pcm.headsetout {
    type upmix
    slave.pcm {
        type plug
        slave.pcm {
            type dmix
            ipc_key 192959
            ipc_key_add_uid true
            ipc_perm 0666
            slave {
                pcm "megalodon"
                rate 48000
                channels 6

                period_time 0
                period_size 1024
                buffer_time 0
                buffer_size 16384
            }
        }
    }
}
0
отвечен Unknownloner 2023-03-29 13:16

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх