Несколько источников звука на одном устройстве 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
}
}