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

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

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

1 ответ1

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
    }
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .