Phonon (KDE)
Тип | Мультимедійний фреймворк |
---|---|
Розробник | Маттіас Крец, команда розробників Phonon |
Стабільний випуск | 4.8.3 (16 грудня, 2014[1]) |
Операційна система | Linux, BSD, Mac OS X, Solaris, Windows |
Мова програмування | C++ |
Ліцензія | GNU Lesser General Public License 2.1 |
Репозиторій | github.com/KDE/phonon |
Вебсайт | phonon.kde.org |
Phonon — мультимедійний фреймворк для KDE 4, що надає API для розробки мультимедіа-застосунків. Phonon використовує набір модулів для розширення своїх можливостей. На сьогоднішній день розповсюджується як частина Qt під ліцензією LGPL v. 2.1.
Phonon був створений щоб дозволити KDE не залежати від будь-яких сторонніх мультимедіа фреймворків, таких як GStreamer або xine , та забезпечити при цьому стабільний API для застосунків. Це було зроблено з декількох причин: щоб створити єдиний KDE/Qt стиль мультимедіа API; задля покращення підтримки мультимедіа застосунків KDE під Windows та Mac OS X; уніфікація роботи API та ABI задля кращої стабільності. Згодом проєкт був перенесений на Qt, отже, може використовуватись незалежно від KDE.
Ідея створення Phonon виникла на конференції aKademy 2004 у Людвігсбурзі поблизу Штутгарта (Німеччина), де потрібно було обрати новий мультимедійний API для заміни aRts. Консенсусу не було досягнуто, але кілька розробників зібралися разом і вирішили спробувати розробити новий фреймворк з декількома бекендами. Найпершу версію було названо KDEMM (KDE MultiMedia), і її підтримували лише JuK та Amarok. Матіас Крец продовжував працювати над проєктом самотужки у рамках своєї університетської дисертації, проєкт ще раз змінив назву, але у лютому 2006 року було остаточно обрано назву Phonon. Перший офіційний випуск було здійснено у складі KDE 4.0 у січні 2008 року, того ж року Phonon було прийнято Qt і випущено у складі Qt 4.4. Незважаючи на те, що підтримку Phonon у Qt буде продовжено для серії 4.x, Qt вже замінила Phonon на QtMultimedia та QtMobility.[2][3][4]
Phonon API написаний на мові програмування C++ з використанням парадигм об'єктно-орієнтованого програмування.[5] Механізм використання інтерфейсу Phonon заснований на графових зв'язках між джерелом (MediaObject) та пристроями виводу (AudioOutput, VideoOutput). Зв'язок між об'єктами даних та пристроями виводу реалізується за допомогою шляхів (Path). Бібліотеки також підтримують звукові ефекти та роботу з аудіо форматом RAW у реальному часі (AudioDataOutput).
- Простота використання.
- Надання розробникам можливості створювати незалежних від API застосунків для виводу аудіо- та відео-даних.
- Відсутність підтримки роботи з пристроями аудіо- та відео захоплення.
- Відсутність доступу до буферу для накладання відео ефектів у реальному часі.
- Недостатні можливості аудіо ефектів.
- PulseAudio - звуковий програмний сервер.
- JACK Audio Connection Kit - система для роботи з аудіо в реальному часі на низьких латентностях.
Офіційний сайт проєкту [Архівовано 26 грудня 2014 у Wayback Machine.]
- ↑ Оголошення про випуск Phonon 4.8.3, 16 Грудня 2014, архів оригіналу за 6 лютого 2015, процитовано 2014-12-16.12.2024
- ↑ Qt Multimedia/Mobility vs. Phonon: FIGHT!!! « Colin.Guthr.ie. web.archive.org. 27 травня 2010. Архів оригіналу за 27 травня 2010. Процитовано 11 квітня 2023. [Архівовано 2010-05-27 у Wayback Machine.]
- ↑ Qt 4.6: QtMultimedia Module. web.archive.org. 28 серпня 2010. Архів оригіналу за 28 серпня 2010. Процитовано 11 квітня 2023. [Архівовано 2010-08-28 у Wayback Machine.]
- ↑ Qt Mobility Project 1.0: Qt Mobility Project APIs Overview. web.archive.org. 2 травня 2010. Архів оригіналу за 2 травня 2010. Процитовано 12 квітня 2023. [Архівовано 2010-05-02 у Wayback Machine.]
- ↑ Phonon: MediaObject Class Reference. web.archive.org. 26 квітня 2008. Архів оригіналу за 26 квітня 2008. Процитовано 12 квітня 2023. [Архівовано 2008-04-26 у Wayback Machine.]