Кіріспе

Unix- тәрізді операциялық жүйелер үшін дыбыс сервері PulseAudio - бұл желілік қабілетті дыбыс сервері, freedesktop арқылы таратылады. жобасына қатысады. Ол негізінен Linux-та, соның ішінде Microsoft Windows-та Linux үшін Windows Subsystem және Android-те Termux; әртүрлі BSD дистрибутивтері, мысалы FreeBSD, OpenBSD және macOS; сондай-ақ Illumos дистрибутивтері мен Solaris операциялық жүйесі. Ол қолданбалар мен аппараттық жабдықтар арасында орта бағдарлама ретінде қызмет етеді және шикі PCM аудио ағынын басқарады. PulseAudio - бұл еркін және ашық бастапқы кодты бағдарламалық қамтамасыз ету және LGPL 2.1 немесе одан кейінгі лицензияның шарттары бойынша лицензияланған. PulseAudio жаңа PipeWire-мен бәсекелеседі, ол үйлесімді PulseAudio серверін (pipewire pulse деп аталады) ұсынады, ал PipeWire қазір көптеген Linux дистрибутивтерінде, соның ішінде Fedora Linux, Ubuntu және Debian-да әдетті түрде қолданылады.

Microsoft Windows- ты қолдау

Microsoft Windows-та PulseAudio Linux үшін Windows қосалқы жүйесінде жұмыс істейді. NT ядросы бұрын MinGW арқылы қолдау тапты (GNU құралдар тізбегінің іске асырылуы, оған GCC және binutils сияқты әртүрлі құралдар кіреді). NT ядросының порты 2011 жылдан бері жаңартылмаған.

Бағдарламалық жасақтама архитектурасы

Жалпы алғанда, ALSA - дыбыс аппараттық драйверін қамтамасыз ететін өзектік кіші жүйе, ал PulseAudio - қолданбалар мен ALSA арасындағы интерфейс қозғалтқышы. Алайда, оны пайдалану міндетті емес және аудионы PulseAudio-сыз ойнату және араластыру мүмкін. PulseAudio дыбыс сервері ретінде әрекет етеді, онда бір немесе бірнеше көздерден (процестер, түсіру құрылғылары және т.б.) дыбыс енгізуді қабылдайтын ая процестері пайда болады. Фондық процесс осы дыбыс көздерін бір немесе бірнеше тұндырғыштарға (дыбыс карталары, қашықтағы желідегі PulseAudio серверлері немесе басқа процестер) қайта бағыттайды. PulseAudio мақсаттарының бірі - барлық дыбыс ағынын, оның ішінде аппаратқа тікелей қол жеткізуге тырысатын процестерден (кезге қалған OSS қолданбалары сияқты) қайта бағыттау. PulseAudio бұған aRts және ESD сияқты басқа аудио жүйелерін қолданатын қосымшаларға адаптерлер беру арқылы қол жеткізеді. Linux-та орнату сценарийінде пайдаланушы ALSA-ны PulseAudio-дан берілген виртуалды құрылғыны пайдалану үшін конфигурациялайды. Осылайша, ALSA қолданатын қосымшалар PulseAudio-ға дыбысты шығарады, содан кейін ALSA-ны нақты дыбыс картасына қол жеткізу үшін қолданады. PulseAudio сонымен қатар PulseAudio-ды тікелей қолдағысы келетін қосымшаларға өзінің жергілікті интерфейсін, сондай-ақ ESD қосымшалары үшін мұрагерлік интерфейсті ұсынады, бұл оны ESD-ді ауыстыру үшін қолайлы етеді. OSS қолданбалары үшін PulseAudio padsp бағдарламалық жасақтамасын ұсынады, ол / dev / dsp сияқты құрылғы файлдарын ауыстырады, бағдарламаларды дыбыс картасына айрықша бақылауға ие деп ойлайды. Шын мәнінде олардың шығысы PulseAudio арқылы қайта бағытталады.

libСидней

libSydney - "PulseAudio streaming API" толық орнын алады және libSydney ақырында PulseAudio-да қолданылатын жалғыз аудио API-ге айналуы жоспарланған.

Бала асырап алу

PulseAudio алғаш рет Fedora Linux-та тұрақты пайдаланушылар үшін пайда болды, 8-ші нұсқадан бастап, содан кейін Ubuntu, Debian, Mandriva Linux және openSUSE сияқты ірі Linux дистрибутивтері қабылдады. GNOME жобасында PulseAudio-ды қолдау бар, сонымен қатар KDE-де, өйткені ол Plasma Workspaces-ке интеграцияланған, Phonon (KDE мультимедиалық фреймворкі) және KMix (интегралды микшерлік қосымша) қолдауын қосады, сондай-ақ көп арналы динамиктерді конфигурациялауға көмектесетін "Speaker Setup" GUI. PulseAudio Illumos OpenIndiana дистрибутивіне де қол жетімді және MATE үстел ортасында әдеттегідей қосылған. Түрлі Linux негізделген ұялы құрылғылар, соның ішінде Nokia N900, Nokia N9 және Palm Pre PulseAudio қолданады. Tizen, Linux Foundation жобасы болып табылатын ашық бастапқы кодты мобильді операциялық жүйе, оны Intel және Samsung компанияларынан тұратын Техникалық басқару тобы (TSG) басқарады, PulseAudio-ды қолданады.

Қабылдау кезеңіндегі проблемалар

PortAudio API PulseAudio-ның дизайнымен үйлеспейтін болды және оны өзгерту қажет болды. OSS қолданатын барлық дерлік пакеттер мен ALSA қолданатын көптеген пакеттер PulseAudio-ды қолдау үшін өзгертілуі керек болды. Glitch-free аудио функциясын одан әрі дамыту үшін PulseAudio өзегін толық қайта жазу қажет болды, сонымен қатар ALSA API және ішкі өзгерістер қажет болды. Дистрибуцияларды алғаш қабылдаған кезде PulseAudio әзірлеушісі Леннарт Поеттинг (сонымен қатар systemd жасаушысы) оны "қазіргі уақытта аудиоңызды бұзатын бағдарламалық қамтамасыз ету" деп сипаттады. Поетринг кейін "Ubuntu керемет жұмыс істемеді. Олар үй тапсырмасын орындамаған" деп жазылған. Бұл проблема Ubuntu "Hardy Heron" (8.04) үшін PulseAudio-ды қабылдауда болды. Алайда, 2009 жылдың қазан айында Поттерлинг Ubuntu-ның PulseAudio интеграциясынан әлі де қанағаттанбағанын хабарлады. Белгілі бір бағдарламалық жасақтама арқылы ескі дыбыс компоненттерімен өзара іс-қимыл: кейбір бағдарламалар, мысалы Linux үшін Adobe Flash, PulseAudio-да тұрақсыздықты тудырды. Flash плагиндерінің жаңа іске асырылуы қарама-қайшылықты элементтерді қажет етпейді, нәтижесінде Flash және PulseAudio енді үйлесімді. Буфердің артық / аз жүруін ерте басқару: PulseAudio-ның бұрынғы нұсқалары буфердің артық / аз жүруін дұрыс қолданбағандықтан, өңделген дыбысты кейде бұрмалай бастады. Құлақ аспаптарын пайдаланушылар үшін, қатты дыбыстардан болатын шудың саңылау саңылауын жоғалту мүмкіндігі.

Басқа дыбыс серверлері

JACK - бұл нақты уақыт, аз күту уақыты (яғни 5 миллисекунд немесе одан аз) аудио өнімділікті қамтамасыз ететін және JACK2 болғандықтан, симметриялық мультипроцессорды пайдалану арқылы тиімді жүктемені теңестіруді қолдайды; яғни барлық аудио клиенттердің жүктемесін бірнеше процессорлар арасында бөлуге болады. JACK - Ardour, ReZound және LinuxSampler сияқты кәсіби аудио қолданбалар үшін таңдалған дыбыс сервері; бірнеше тегін аудио өндірісі дистрибутивтері оны әдетті аудио сервер ретінде қолданады. JACK және PulseAudio бірге өмір сүруі мүмкін: JACK орындалған кезде PulseAudio автоматты түрде JACK клиенті ретінде қосыла алады, бұл PulseAudio клиенттеріне JACK клиенттерімен бір уақытта дыбыс шығарып, жазуға мүмкіндік береді. PipeWire - аудио және бейне сервері, ол "PulseAudio және Jack-тің қолдауымен жұмыс істейді".

Жалпы аудио инфрақұрылымдары

JACK және PulseAudio-дан бұрын осы жүйелердегі дыбыс көп мақсатты интеграцияланған дыбыс шешімдерімен басқарылатын. Бұл шешімдер қоспалау мен дыбыс ағынын толық қамтымайды, бірақ оларды JACK және PulseAudio әлі де дыбыс картасына соңғы дыбыс ағынын жіберу үшін пайдаланады. ALSA dmix деп аталатын бағдарламалық құралды ұсынады, ол PulseAudio-дан бұрын жасалған. Бұл Linux дистрибутивтерінің бәрінде де бар және қарапайым PCM аудио араластыру шешімі болып табылады. Ол PulseAudio-ның озық мүмкіндіктерін (таймерге негізделген жоспарлау және желілік аудио сияқты) қамтамасыз етпейді. Ал ALSA, соған сәйкес дыбыс карталары мен бағдарламалық жасақтамамен біріктірілгенде, кішігірім уақыт күтуді ұсынады. OSS - Linux және басқа Unix операциялық жүйелерінде қолданылған бастапқы дыбыс жүйесі, бірақ Linux 2.5 ядросынан кейін қолданылмай қалды. 4Front Technologies компаниясы патенттік дамуын жалғастырды, ол 2007 жылдың шілдесінде OpenSolaris үшін CDDL 1.0 және GPL 2.0 бойынша тек Linux үшін OSS үшін бастапқы дереккөздерді шығарды. Қазіргі заманғы іске асыру, Open Sound System v4, бағдарламалық араластыруды, қайта үлгілеуді және аудио дыбысты қолдану негізінде өзгертуді қамтамасыз етеді; PulseAudio-дан айырмашылығы, бұл мүмкіндіктер өзекте іске асырылады. OpenIndiana және басқа illumos дистрибутивтеріндегі PulseAudio қолдау OSS-ті ядролық іске асыру ("Boomer") негізделген.