Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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 ( это ); createPath ( media ,  новый  Phonon :: AudioOutput ( Phonon :: MusicCategory ,  this )); медиа -> setCurrentSource ( QUrl ( "/tmp/example.wav" )); медиа -> играть ();

Phonon разработан не для того, чтобы иметь все мыслимые мультимедийные функции, а скорее как простой способ выполнять общие функции компьютерных медиаплееров. Разработчикам, которым требуется больший контроль над данным сервером мультимедиа, чем может предоставить Phonon, рекомендуется использовать собственный мультимедийный API или API GStreamer в системах, для которых он доступен. [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]

Особенности [ править ]

Фононная работа
  • Phonon взаимодействует с различными серверными модулями, которые разработчики называют «движками»; каждый движок работает с одним конкретным сервером. Каждый бэкэнд позволяет Phonon управлять основными функциями, такими как воспроизведение, пауза и поиск. Phonon также будет поддерживать функции более высокого уровня, такие как переход треков друг в друга. [8]
  • Phonon может переключать мультимедийные фреймворки на лету. Пользователь может переключаться между фреймворками даже во время прослушивания музыки, сделав лишь небольшую паузу во время переключения. Это изменение также будет общесистемным и затронет все приложения, использующие Phonon, поэтому изменение фреймворков будет намного проще.
  • Используя Solid , Phonon дает пользователям больший контроль над аксессуарами, такими как гарнитуры, динамики и микрофоны. Был приведен пример того, что можно вести разговор по VoIP только через гарнитуру, но все остальные звуки воспроизводятся через динамики. [8]

Бэкэнды [ править ]

  • В большинстве Unix-подобных систем поддерживаются бэкенды GStreamer и VLC .
  • Поддерживаемые серверные части в Windows включают DirectShow , VLC и MPlayer .
  • Поддерживаемый бэкэнд в macOS - QuickTime .
  • Серверные модули xine и MPlayer устарели в Linux и больше не разрабатываются. [9]

См. Также [ править ]

  • PulseAudio - преобладающий звуковой сервер для настольных ПК
  • JACK Audio Connection Kit - основной звуковой сервер для профессионального аудиопроизводства

Ссылки [ править ]

  1. ^ «Выпущена KDE 4.0» . 2018-01-11 . Проверено 23 октября 2019 .
  2. ^ "Объявление о выпуске Phonon 4.11.1" . 2019-09-26 . Проверено 23 октября 2019 .
  3. ^ Крец, Матиас. «Описание класса MediaObject» . Архивировано из оригинала на 2008-04-26 . Проверено 19 декабря 2007 .
  4. ^ a b Сандерс, Н. (09.05.2006). «Фонон и будущее мультимедиа KDE» . Проверено 19 декабря 2007 .
  5. ^ Гатри, Колин. "Qt Multimedia / Mobility vs. Phonon: БОРЬБА !!!" . Проверено 20 ноября 2010 .
  6. ^ "Модуль QtMultimedia" . Проверено 20 ноября 2010 .
  7. ^ «Обзор API Qt Mobility Project» . Проверено 20 ноября 2010 .
  8. ^ a b Унрау, Трой (2007-02-06). «Путь к KDE 4: Phonon делает мультимедиа проще» . Проверено 19 декабря 2007 .
  9. ^ "Phonon - KDE UserBase Wiki" . Проверено 1 марта 2012 .

Внешние ссылки [ править ]

  • Домашняя страница Phonon
  • Код Phonon (размещен на git.kde.org)