Phonon (software)
![]() | |
![]() An early screenshot of Phonon's setting manager | |
Developer(s) | Matthias Kretz u.a.[citation needed] |
---|---|
Initial release | January 11, 2008[1] |
Stable release | 4.11.1
/ September 26, 2019[2] |
Solaris, Windows | |
Type | Multimedia framework |
License | GNU Lesser General Public License 2.1 |
Website | userbase |
Phonon is the multimedia
Phonon was originally created to allow KDE and Qt software to be independent of any single multimedia framework such as GStreamer or xine and to provide a stable API for a major version's lifetime. It was done for various reasons: to create a simple KDE/Qt style multimedia API, to better support native multimedia frameworks on Windows and macOS, and to fix problems of frameworks becoming unmaintained or having API or ABI instability.
For example, a file can be played in four lines of C++ code,[3] compared to 30 lines in the old audio framework for 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 is not designed to have every conceivable multimedia feature, but rather as a simple way to perform common functions of computer media players. Developers that require more control over a given media backend than Phonon can provide are recommended to use the native media API or the GStreamer API on systems for which it is available.[4]
History
The idea behind Phonon started at
Features
![](http://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/Phonon-audiodeviceconfig.png/350px-Phonon-audiodeviceconfig.png)
- Phonon interfaces with various backends with what developers call "engines"; each engine works with one specific backend. Each backend will let Phonon control basic functions like play, pause, and seek. Phonon will also support higher level functions such as how tracks fade into each other.[8]
- Phonon can switch multimedia frameworks on the fly. The user can switch between frameworks even while listening to music, with only a slight pause during the switch. This change will also be system wide, affecting all applications that use Phonon, so changing frameworks will be much easier.
- Using
Backends
- Supported backends on most Unix-like systems are GStreamer and VLC.
- Supported backends under Windows include DirectShow, VLC and MPlayer.
- Supported backend under macOS is QuickTime.
- xine and MPlayer backends are deprecated on Linux and no longer being developed.[9]
See also
- PulseAudio – prevailing sound server for desktop use
- JACK Audio Connection Kit – prevailing sound server for professional audio production
References
- ^ "KDE 4.0 Released". 2018-01-11. Retrieved 2019-10-23.
- ^ "Release announcement for Phonon 4.11.1". 2019-09-26. Retrieved 2019-10-23.
- ^ Kretz, Matthias. "MediaObject Class Reference". Archived from the original on 2008-04-26. Retrieved 2007-12-19.
- ^ a b Sanders, N. (2006-05-09). "Phonon and the future of KDE multimedia". Retrieved 2007-12-19.
- ^ Guthrie, Colin. "Qt Multimedia/Mobility vs. Phonon: FIGHT!!!". Archived from the original on 2010-05-27. Retrieved 2010-11-20.
- ^ "QtMultimedia Module". Archived from the original on 2010-08-28. Retrieved 2010-11-20.
- ^ "Qt Mobility Project APIs Overview". Archived from the original on 2010-05-02. Retrieved 2010-11-20.
- ^ a b Unrau, Troy (2007-02-06). "The Road to KDE 4: Phonon Makes Multimedia Easier". Retrieved 2007-12-19.
- ^ "Phonon - KDE UserBase Wiki". Retrieved 2012-03-01.
External links
- Phonon home page
- Phonon code (hosted in invent.kde.org)