Разработчик(и) | Маттиас Кретц ua [ нужна ссылка ] |
---|---|
Первоначальный выпуск | 11 января 2008 г (2008-01-11) | [1]
Стабильный релиз | 4.11.1 / 26 сентября 2019 г. (2019-09-26) [2] |
Репозиторий | invent.kde.org/libraries/phonon |
Написано в | С++ |
Операционная система | Linux , BSD , macOS , Solaris , Windows |
Тип | Мультимедийная структура |
Лицензия | Стандартная общественная лицензия ограниченного применения GNU 2.1 |
Веб-сайт | userbase.kde.org/Phonon |
Phonon — это мультимедийный API , предоставляемый KDE , и стандартная абстракция для обработки мультимедийных потоков в программном обеспечении KDE , а также используемый несколькими приложениями Qt .
Phonon изначально был создан, чтобы позволить программному обеспечению KDE и Qt быть независимым от любого отдельного мультимедийного фреймворка, такого как GStreamer или xine, и предоставить стабильный API для жизненного цикла основной версии. Это было сделано по разным причинам: создать простой мультимедийный API в стиле KDE / Qt , улучшить поддержку собственных мультимедийных фреймворков в Windows и macOS и исправить проблемы фреймворков, которые становились неподдерживаемыми или имели нестабильность API или ABI .
Например, файл может быть воспроизведен с помощью четырех строк кода C++ [3] по сравнению с 30 строками в старом аудиофреймворке для KDE ( aRts ) [4]
Phonon :: MediaObject * media = new Phonon :: MediaObject ( this ); createPath ( media , new Phonon :: AudioOutput ( Phonon :: MusicCategory , this )); media -> setCurrentSource ( QUrl ( "/tmp/example.wav" )); media -> play ();
Phonon не предназначен для всех мыслимых мультимедийных функций, а скорее как простой способ выполнения общих функций компьютерных медиаплееров. Разработчикам, которым требуется больше контроля над заданным медиабэкендом, чем может предоставить Phonon, рекомендуется использовать собственный медиа-API или GStreamer API в системах, для которых он доступен. [4]
Идея 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. [5] [6] [7]