Играем в конструктор → PulseAudio
PulseAudio - это сервер звука. У него достаточно много интересных возможностей.
Вся работа со звуком ведется с помощью плагинов и модулей
Плагины - это (обычно) штуки, которые позволяют чему-то выводить звук через Pulse. В том числе, этим чем-то может быть и другая звуковая система. В этом случае создается виртуальный звуковой девайс, который направляет звук в pulse.
Модули. Это основной инструмент. Для начала нужно понять, что означают термины sink и source. Это просто. sink - это сущность, через которую можно выводить звук, source - это сущность, из которой можно звук получать. Так вот, все source и sink создаются с помощь. модулей. Также, любая программа, выводящая или получающая звук через PulseAudio, позиционируется как его клиент. За клиентом есть право выбора source и sink
Теперь немного отойдем от абстракции, и подумаем над реальными возможностями.Любой sink можно (с помощью .monitor) использовать как source. Для построения хитрых конструкций есть module-null-sink. Как можно догадаться, он никуда не выводит звук, а нужен в целях использования, например, его .monitor.
Есть, например, модуль module-rtp-send. Он берет звук из какого-то source, и отправляет его по сети при помощи мультикастового протокола rtp. Модуль module-rtp-recv, напротив, получает мультикастовый звук по протоколу rtp. Этой парочкой можно сделать очень много.
Есть разные модули, которые оперируют sink'ами. Начиная от банального эквалазера (то есть создается sink, который принимает звук, изменяет его, и направляет в другой), заканчивая такими штуками, как комбинирование и разделение sink'ов (скажем, можно разделить каналы. заставить левый динамик играть одно, правый - другое =) ).
А учитывая то, что подключать модули можно написанием одной строчки в конфиге, этот сервер преващается в простой и интересный конструктор.
Простите за путанность и неполность, но тут сложно рассказать все. Если интересно, посмотрите вики на офф. сайте. В особенности, стоит заглянуть в разделы FAQ и Modules, чтобы прочитать про возможности, и в разделы FirstSteps и PerfectSetup, чтобы понять, как ставить.
Установить вместе с alsa достаточно просто. Там все написано. Основные грабли при установке: если у вас в конфиге pulse включены такие штуки, как module-hal-detect или module-zeroconf-publish, то могут быть проблемы с ручным добавлением устройств и протоколов. Рекомендую отключить.
Вся работа со звуком ведется с помощью плагинов и модулей
Плагины - это (обычно) штуки, которые позволяют чему-то выводить звук через Pulse. В том числе, этим чем-то может быть и другая звуковая система. В этом случае создается виртуальный звуковой девайс, который направляет звук в pulse.
Модули. Это основной инструмент. Для начала нужно понять, что означают термины sink и source. Это просто. sink - это сущность, через которую можно выводить звук, source - это сущность, из которой можно звук получать. Так вот, все source и sink создаются с помощь. модулей. Также, любая программа, выводящая или получающая звук через PulseAudio, позиционируется как его клиент. За клиентом есть право выбора source и sink
Теперь немного отойдем от абстракции, и подумаем над реальными возможностями.Любой sink можно (с помощью .monitor) использовать как source. Для построения хитрых конструкций есть module-null-sink. Как можно догадаться, он никуда не выводит звук, а нужен в целях использования, например, его .monitor.
Есть, например, модуль module-rtp-send. Он берет звук из какого-то source, и отправляет его по сети при помощи мультикастового протокола rtp. Модуль module-rtp-recv, напротив, получает мультикастовый звук по протоколу rtp. Этой парочкой можно сделать очень много.
Есть разные модули, которые оперируют sink'ами. Начиная от банального эквалазера (то есть создается sink, который принимает звук, изменяет его, и направляет в другой), заканчивая такими штуками, как комбинирование и разделение sink'ов (скажем, можно разделить каналы. заставить левый динамик играть одно, правый - другое =) ).
А учитывая то, что подключать модули можно написанием одной строчки в конфиге, этот сервер преващается в простой и интересный конструктор.
Простите за путанность и неполность, но тут сложно рассказать все. Если интересно, посмотрите вики на офф. сайте. В особенности, стоит заглянуть в разделы FAQ и Modules, чтобы прочитать про возможности, и в разделы FirstSteps и PerfectSetup, чтобы понять, как ставить.
Установить вместе с alsa достаточно просто. Там все написано. Основные грабли при установке: если у вас в конфиге pulse включены такие штуки, как module-hal-detect или module-zeroconf-publish, то могут быть проблемы с ручным добавлением устройств и протоколов. Рекомендую отключить.