PulseAudio - PulseAudio

PulseAudio
PulseAudio логотипі
ӘзірлеушілерЛенарт Потеринг
Пьер Оссман
Shahms E. King
Тану Каскинен
Колин Гутри
Арун Рагаван
Дэвид Хеннингссон
Бастапқы шығарылым17 шілде 2004 ж; 16 жыл бұрын (2004-07-17)[1]
Тұрақты шығарылым
14.0[2] / 23 қараша 2020; 5 күн бұрын (2020-11-23)
Репозиторийgitlab.freedesktop.org/ pulseaudio/ pulseaudio
ЖазылғанC[3]
Операциялық жүйеFreeBSD, NetBSD, OpenBSD, Linux, Illumos, Solaris, macOS, және Microsoft Windows (ұсталмайды)
ПлатформаҚОЛ, PowerPC, x86 / IA-32, x86-64, және MIPS
ТүріДыбыстық сервер
ЛицензияGNU кіші жалпыға ортақ лицензиясы 2.1[4]
Веб-сайтpulseaudio.org

PulseAudio желіге қабілетті дыбыстық сервер арқылы таратылатын бағдарлама freedesktop.org жоба. Ол негізінен жұмыс істейді Linux, әр түрлі BSD сияқты тарату FreeBSD және OpenBSD, macOS, Сонымен қатар Illumos тарату және Solaris операциялық жүйе. Microsoft Windows арқылы бұрын қолдау көрсетілген МинГВ құралдар тізбегі (іске асыру GNU сияқты әр түрлі құралдарды қамтитын құралдар тізбегі GCC және бинтильдер ). Windows порт 2011 жылдан бастап жаңартылмаған, дегенмен.[5]

PulseAudio болып табылады ақысыз және бастапқы көзі ашық бағдарламалық жасақтама, және шарттарына сәйкес лицензияланған GNU кіші жалпыға ортақ лицензиясы 2.1 нұсқасы.[4]

Ол 2004 жылы Polypaudio деген атпен құрылды, бірақ 2006 жылы PulseAudio болып өзгертілді.[6]

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

PulseAudio операциялық схемасы
PulseAudio - бұл бағдарламалық жасақтаманы араластыратын демон.

Кең мағынада ALSA - бұл дыбыстық аппараттық драйверді қамтамасыз ететін ядро ​​ішкі жүйесі, ал PulseAudio - бұл қосымшалар мен ALSA арасындағы интерфейс қозғалтқышы.

PulseAudio дыбыстық сервер ретінде жұмыс істейді, мұнда фондық процесс бір немесе бірнеше дыбыстық кірісті қабылдайды ақпарат көздері (процестер, түсіру құрылғылары және т.б.) жасалады. Содан кейін фондық процесс бұл дыбыс көздерін бір немесе бірнеше бағыттауға бағыттайды раковиналар (дыбыстық карталар, PulseAudio қашықтағы серверлері немесе басқа процестер).[7]

PulseAudio бағдарламасының мақсаттарының бірі ол арқылы барлық дыбыстық ағындардың бағытын өзгерту, соның ішінде аппараттық құралға тікелей қол жеткізуге тырысатын процестердің ағымын өзгерту (мысалы, мұра) OSS қосымшалар). PulseAudio бұған басқа аудио жүйелерді қолданатын қосымшаларға адаптерлер беру арқылы қол жеткізеді арттар және ESD.

Linux-тің әдеттегі сценарийінде пайдаланушы ALSA-ны PulseAudio ұсынатын виртуалды құрылғыны пайдалану үшін теңшейді. Осылайша, ALSA қолданбалары PulseAudio-ға дыбыс шығарады, содан кейін ALSA-ны өзі нақты дыбыстық картаға қол жеткізу үшін қолданады. PulseAudio сонымен қатар PulseAudio-ны тікелей қолдағысы келетін қосымшаларға өзіндік интерфейсті, сондай-ақ ESD қосымшалары үшін бұрынғы интерфейсті ұсынады, бұл оны ESD-ді алмастыруға ыңғайлы етеді.

OSS қосымшалары үшін PulseAudio қамтамасыз етеді жастық сияқты құрылғы файлдарын ауыстыратын утилита / dev / dsp, қосымшаларды дыбыстық картаны эксклюзивті бақылауға аламын деп алдау. Шындығында, олардың шығысы PulseAudio арқылы қайта бағытталады.

либанберра

libcanberra - бұл жұмыс үстелі оқиғаларына арналған абстрактілі API және «PulseAudio кэш API үлгісін» толық ауыстыру:

libСидней

libSydney - бұл «PulseAudio ағынды API-сінің» орнын толтыру және libSydney-дің PulseAudio-да қолданылатын жалғыз аудио API болу жоспарлары жасалды.[11]

Ерекшеліктер

PulseAudio негізгі ерекшеліктеріне мыналар жатады:[7]

  • Бағдарлама көлемінің басқару элементтері.[12]
  • Жүктелетін модульдерді қолдайтын кеңейтілетін плагин архитектурасы.
  • Көптеген танымал аудио қосымшалармен үйлесімділік.[13]
  • Бірнеше аудио көздері мен раковиналарға қолдау.
  • A нөлдік көшірме процессор ресурстарының тиімділігі үшін жад архитектурасы.
  • Жергілікті желіде PulseAudio көмегімен басқа компьютерлерді табу және олардың динамиктері арқылы дыбысты тікелей ойнату мүмкіндігі.
  • Дыбыс ойнатылып жатқанда дыбыстық ойнатуды жүзеге асыратын қандай құрылғы қосымшаларын қолдана алатындығын өзгерту мүмкіндігі (қосымшалар бұны қолдауы қажет емес, PulseAudio бұл болғанын анықтаған қосымшасыз жасай алады)
  • Сценарий жазу мүмкіндігі бар командалық интерфейс.
  • Пәрмен жолын қайта конфигурациялау мүмкіндігі бар дыбыстық демон.
  • Кіріктірілген үлгілерді түрлендіру және қайта іріктеу мүмкіндіктері.
  • Көпті біріктіру мүмкіндігі дыбыстық карталар біреуіне.
  • Бірнеше ойнату ағындарын синхрондау мүмкіндігі.
  • Динамикалық анықтау мүмкіндіктері бар Bluetooth аудио құрылғысын қолдау.
  • Жүйені кеңінен қосу мүмкіндігі теңестіру.

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

PulseAudio алғаш рет тұрақты қолданушылар үшін пайда болды Fedora Linux, 8 нұсқасынан бастап,[14] сияқты негізгі Linux таратылымдары қабылдады Ubuntu, Дебиан,[15] Магея, Mandriva Linux, Linux Mint, openSUSE, және OpenWrt.[16] PulseAudio қолдауы бар GNOME жоба, сонымен қатар KDE, ол біріктірілген ретінде Плазмалық жұмыс кеңістігі, қолдауды қосу Фонон (KDE мультимедиялық негізі) және KMix (араластырғыштың интеграцияланған қосымшасы), сондай-ақ көп арналы динамиктердің конфигурациясына көмектесетін «Динамикті орнату» GUI. Сонымен қатар PulseAudio қол жетімді Illumos тарату Индиана, және оның әдепкі бойынша қосулы MATE қоршаған орта.

Әр түрлі Linux - негізделген мобильді құрылғылар, оның ішінде Nokia N900, Nokia N9 және Palm Pre[17] PulseAudio қолданыңыз.

Тизен жобасы, ашық көзді мобильді операциялық жүйе Linux Foundation құрамына кіретін және техникалық басқарушы топ (TSG) басқарады Intel және Samsung, PulseAudio қолданады.

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

  • The PortAudio API PulseAudio дизайнымен үйлеспеді және оны өзгерту қажет болды.[18] OSS-ті қолданатын барлық дерлік пакеттер және ALSA-ны қолданатын көптеген пакеттер PulseAudio-ны қолдау үшін өзгертілуі керек.[19] Ақаулықсыз дыбыстық мүмкіндікті одан әрі дамыту үшін PulseAudio өзегін толығымен қайта жазу керек, сонымен қатар ALSA API мен ішкі құрылғыларға өзгерістер енгізу қажет болды.[20][21]
  • Дистрибьюторлар алғаш қабылдаған кезде PulseAudio әзірлеушісі Ленарт Потеринг (сонымен қатар жүйелік ) оны «қазіргі уақытта сіздің аудионы бұзатын бағдарламалық жасақтама» деп сипаттады.[22] Потеринг кейінірек «Ubuntu дәл жұлдызды жұмыс жасамады. Олар PulseAudio-ны қабылдау кезінде үй тапсырмаларын орындамады[23] Ubuntu үшін «Hardy Heron» (8.04), келесі Ubuntu шығарылымдарымен жақсартылған мәселе.[24] Алайда, 2009 жылдың қазан айында Потертеринг Ubuntu-дің PulseAudio интеграциясына көңілі толмағаны туралы хабарлады.[25]
  • Ескі дыбыстық компоненттермен белгілі бір бағдарламалық жасақтаманың өзара әрекеттесуі: белгілі бағдарламалар, мысалы Adobe Flash Linux үшін PulseAudio тұрақсыздығын тудырды.[26][27] Flash плагиндерінің жаңа енгізілімдері қайшылықты элементтерді қажет етпейді, нәтижесінде Flash пен PulseAudio үйлесімді.
  • Буферді асыра басқарудың ерте кезеңі: PulseAudio-дың алдыңғы нұсқалары кейде өңделген дыбысты бұрмалай бастайды, себебі буферді асып түсіру / түсіру дұрыс өңделмеген.[28]

Байланысты бағдарламалық жасақтама

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

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

JACK пен PulseAudio қатар өмір сүруі мүмкін: JACK жұмыс істеп тұрған кезде PulseAudio автоматты түрде өзін JACK клиенті ретінде байланыстыра алады, бұл PulseAudio клиенттеріне JACK клиенттерімен бір уақытта дыбыс шығаруға және жазуға мүмкіндік береді.[29]

PipeWire - бұл «қазіргі уақытта PulseAudio және Джек басқаратын веб-сайттарды қолдауға бағытталған» аудио-видео сервер.[30][31]

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

Бұрын Джек және PulseAudio, осы жүйелердегі дыбысты көп мақсатты интеграцияланған аудио шешімдер басқарды. Бұл шешімдер араластыру және дыбыстық ағындарды толығымен қамтымайды, бірақ оларды JACK және PulseAudio әлі де дыбыстық картаға соңғы аудио ағынды жіберу үшін қолданады.

  • ALSA PulseAudio-ға дейін жасалған dmix деп аталатын бағдарламалық араластырғышты ұсынады. Бұл Linux дистрибутивтерінің барлығында қол жетімді және аудио араластырудың қарапайым PCM шешімі болып табылады. Бұл PulseAudio-дің жетілдірілген мүмкіндіктерін (мысалы, таймерге негізделген жоспарлау және желілік аудио) қамтамасыз етпейді. Екінші жағынан, ALSA сәйкес дыбыстық карталармен және бағдарламалық жасақтамамен үйлескенде төмен кідірістер ұсынады.
  • OSS Linux және басқа Unix операциялық жүйелерінде қолданылған түпнұсқа дыбыстық жүйе болды, бірақ 2.5 Linux ядросынан кейін ескірді.[32] Меншікті дамыту жалғастырылды 4Front Technologies 2007 жылдың шілдесінде OSS дереккөздерін шығарды CDDL үшін OpenSolaris және астында GPL үшін Linux.[33] Open Sound System v4 заманауи енгізу бағдарламалық жасақтаманы араластыруды, қайта іріктеуді және дыбыс деңгейінің өзгеруін қамтамасыз етеді; PulseAudio-ға қарағанда, бұл мүмкіндіктер ядро ​​ішінде жүзеге асырылады. PulseAudio қолдауы Индиана және басқа да иллюмо дистрибутивтер ядро ​​ішіндегі OSS енгізілуіне негізделген («»Бумер «).

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ «OldNews». freedesktop.org.
  2. ^ Каскинен, Тану (24 қараша 2020). «PulseAudio 14.0». pulseaudio-талқылау (Тарату тізімі). Алынған 23 қараша 2020.
  3. ^ «PulseAudio», Талдаудың қысқаша мазмұны, Хабты ашыңыз
  4. ^ а б «Лицензия», PulseAudio git, Тегін жұмыс үстелі, мұрағатталған түпнұсқа 4 наурыз 2014 ж, алынды 16 маусым 2011
  5. ^ Windows жүйесінде PulseAudio
  6. ^ Жоба бұрын полипаудио деп аталған
  7. ^ а б «Туралы», PulseAudio, Тегін жұмыс үстелі, алынды 11 наурыз 2013
  8. ^ [email protected], Debian Webmaster. «Debian - пакеттің іздеу нәтижелері - libcanberra». packages.debian.org.
  9. ^ [email protected], Debian Webmaster. «Debian - пакеттің іздеу нәтижелері - libasound». packages.debian.org.
  10. ^ [email protected], Debian Webmaster. «Debian - пакеттің іздеу нәтижелері - libcanberra-pulse». packages.debian.org.
  11. ^ Потеринг, Ленарт (8 ақпан 2007). «FOMS / LCA Recap». 0pointer.de. Алынған 13 наурыз 2017.
  12. ^ Потеринг, Ленарт, «Сұхбат», Fedora жобасы, Қызыл қалпақ, алынды 3 шілде 2009
  13. ^ Pulse Audio вики, PulseAudio, мұрағатталған түпнұсқа 2009 жылғы 18 қазанда, алынды 19 шілде 2009
  14. ^ «LPC: Linux дыбысы: бұл былық [LWN.net]». 18 қыркүйек 2008 ж. Алынған 11 шілде 2019.
  15. ^ PulseAudio, Debian, мұрағатталған түпнұсқа (уики) 2013 жылғы 9 қарашада, алынды 9 қараша 2013
  16. ^ PulseAudio (уики), OpenWRT, алынды 8 қаңтар 2012
  17. ^ «Ашық ақпарат көзі: PulseAudio жасаушысы Ленарт Потеринг», TechWorld, 8 қазан 2009 ж
  18. ^ Потеринг, Ленарт (25 қыркүйек 2004). «PortAudio драйверін жазу». audio.portaudio.devel. git.net. Алынған 28 ақпан 2017.
  19. ^ Потеринг, Ленарт. «PulseAudio енді Fedora жаңа қондырғыларында әдепкі бойынша қосылады». Fedora Development ML. Қызыл қалпақ. Алынған 1 наурыз 2017.
  20. ^ «Мүмкіндіктер: ақаусыз аудио». Fedora Project Wiki. Алынған 28 ақпан 2017.
  21. ^ Потеринг, Ленарт. «Alsa Issues». PulseAudio - Trac. Архивтелген түпнұсқа 16 қазан 2008 ж. Алынған 28 ақпан 2017.
  22. ^ LPC: Linux дыбысы: бұл былық, LWN, 2008 жылғы 18 қыркүйек, мұрағатталды түпнұсқадан 2009 жылғы 18 қазанда, алынды 3 шілде 2009
  23. ^ Леннарт Потеринг (18 шілде 2008), PulseAudio FUD, 0pointer.de, мұрағатталды түпнұсқадан 2009 жылғы 18 қазанда, алынды 30 желтоқсан 2009
  24. ^ Қалай қолдануға болады: PulseAudio түзетулері және жүйенің кең эквалайзерін қолдау, Ubuntu форумдары, 10 мамыр 2008 ж., мұрағатталды түпнұсқадан 2009 жылғы 18 қазанда, алынды 18 қазан 2009
  25. ^ Мен сіздің аудионы бұзамын, Lennart Poettering блогы, 19 қазан 2009 ж, алынды 26 желтоқсан 2009
  26. ^ Flash, YouTube және т.б. іске қосылғаннан кейін дыбыс шықпайды (pulseaudio шешімі), Ubuntu форумдары, мұрағатталды түпнұсқадан 2009 жылғы 18 қазанда, алынды 18 қазан 2009
  27. ^ PulseAudio, Ubuntu Wiki, мұрағатталды түпнұсқадан 2009 жылғы 18 қазанда, алынды 18 қазан 2009
  28. ^ «PulseAudio-дағы шамадан тыс оптимизм буферліктерді тудырады (естілетін кекештер, поптар)». Іске қосу тақтасы. Алынған 9 қараша 2013.
  29. ^ «Жүктелетін модульдер» бөлімін қараңыз. Модульдер, Freedesktop.org, https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index9h2, алынды 28 тамыз 2019
  30. ^ «PipeWire». pipewire.org.
  31. ^ «Федора жұмыс бекетіне 31 жолда - Христиан Ф.К. Шаллер».
  32. ^ Linux дыбыстық жүйелері мен API интерфейстеріне кіріспе, Linux.com, 9 тамыз 2004 ж., Мұрағатталған түпнұсқа 19 қазан 2014 ж, алынды 23 наурыз 2013, OSS Linux үшін ғана емес, сонымен қатар BSD OS және басқа Unix үшін қол жетімді. Бұл оның жалғыз артықшылығы болуы мүмкін, себебі бұл жүйе онша қуатты емес және оны ALSA-мен 2,5 ядроларға ауыстырған ...
  33. ^ 4Front технологиялар ашық дыбыстық жүйенің бастапқы кодын шығарады, Linux PR, 14 маусым 2007 ж, алынды 8 қаңтар 2012.

Сыртқы сілтемелер