Введение

Phonon - это мультимедийный API, предоставляемый KDE, и является стандартной абстракцией для обработки мультимедийных потоков в программном обеспечении KDE, а также используется несколькими приложениями Qt. Phonon был первоначально создан, чтобы позволить программному обеспечению KDE и Qt быть независимым от любой единой мультимедийной структуры, такой как GStreamer или xine, и обеспечить стабильный API на протяжении жизни основной версии. Это было сделано по разным причинам: для создания простого мультимедийного API в стиле KDE / Qt, для лучшей поддержки родных мультимедийных фреймворков в Windows и macOS и для устранения проблем фреймворков, которые становятся неустойчивыми или имеют нестабильность API или ABI. Например, файл может быть воспроизведен в четырех строках кода C ++, по сравнению с 30 строками в старой аудио структуре для KDE (aRts) Phonon:: MediaObject * media = new Phonon:: MediaObject ((this); createPath ((media, new Phonon::AudioOutput ((Phonon:: MusicCategory, this)); media > setCurrentSource ((QUrl (("/tmp / пример. wav")); media >play ; Phonon не предназначен для того, чтобы иметь все возможные мультимедийные функции, а скорее как простой способ выполнения общих функций компьютерных медиаплееров. Разработчикам, которым требуется больше контроля над определенным медиа-бэкэндом, чем может предоставить Phonon, рекомендуется использовать собственный медиа-API или API GStreamer на системах, для которых он доступен.

Особенности

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