Несколько источников звука на одном устройстве ALSA на разных скоростях

Я создаю аудио-стример на основе Linux для высококачественного звука. У меня есть несколько приложений, которые я хочу иметь доступ к аудиоустройству одновременно. (вроде демона shairport-sync, roon и music player)

Я нашел плагин dmix для ALSA, который позволяет смешивать два потока звука в одном аудиоустройстве. Однако, dmix требует, чтобы я определял частоту дискретизации при определении устройства dmix, и мне нужно, чтобы частота дискретизации была переменной в зависимости от частоты дискретизации, которая выводится из источника.

Есть ли плагин, который позволяет переключаться между входами? Или я что-то упустил в dmix?

1 ответ

Вы должны использовать плагины (преобразование скорости) или плагины (автоматическое преобразование). Смотрите список плагинов alsa-lib.

Конфигурация должна быть сделана в файле конфигурации alsa-lib, расположенном в доме пользователя (.asoundrc).

Темп

Этот плагин преобразует скорость потока. Форматы ввода и вывода должны быть линейными.

Пример использования:

pcm.<name> {
        type rate
        slave <slave_name>
}

штепсель

Этот плагин конвертирует каналы, скорость и формат по запросу.

Пример использования:

pcm.<name> {
        type plug
        slave <slave_name>
}

Пример использования dmix и плагинов для автоматического преобразования

# Overwrites 'default'
pcm.!default {
    type plug
    slave.pcm "dmixer"
}

pcm.dmixer  {
    type dmix
    ipc_key 1024 # Any unique value for Interprocess Communication
    slave {
        pcm "hw:1,0"
        period_size 1024
        buffer_size 4096
        rate 44100
    }
}
Другие вопросы по тегам