| Phonon | |
|---|---|
![]() | |
An early screenshot of Phonon's setting manager | |
| Developer | Matthias Kretz u.a.[citation needed] |
| Initial release | January 11, 2008; 17 years ago (2008-01-11)[1] |
| Stable release | |
| Repository | invent |
| Written in | C++ |
| Operating system | Linux,BSD,macOS,Solaris,Windows |
| Type | Multimedia framework |
| License | GNU Lesser General Public License 2.1 |
| Website | userbase |
Phonon is the multimediaAPI provided byKDE and is the standard abstraction for handling multimedia streams withinKDE software and also used by severalQt applications.
Phonon was originally created to allow KDE and Qt software to be independent of any single multimedia framework such asGStreamer orxine and to provide a stable API for a major version's lifetime. It was done for various reasons: to create a simpleKDE/Qt style multimedia API, to better support native multimedia frameworks onWindows andmacOS, and to fix problems of frameworks becoming unmaintained or having API orABI instability.
For example, a file can be played in four lines ofC++ code,[3] compared to 30 lines in the old audio framework for KDE (aRts)[4]
Phonon::MediaObject*media=newPhonon::MediaObject(this);createPath(media,newPhonon::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]
The idea behind Phonon started ataKademy 2004 in Ludwigsburg near Stuttgart (Germany), where a new multimedia API had to be chosen to replace aRts. No consensus was reached but a few developers got together and decided to try to develop a new framework with multiple backends. The earliest version was called KDEMM (KDE MultiMedia) and was only supported byJuK andAmarok. Matthias Kretz continued to work single handed on the project as part of his university thesis, The project changed name once more but in February 2006 the name Phonon was finally chosen. The first official release was part of KDE 4.0 in January 2008, the same year Phonon was adopted byQt and released as part of Qt 4.4. Even though support for Phonon in Qt will continue for the 4.x series, Qt has already replaced Phonon with QtMultimedia and QtMobility.[5][6][7]
