Phonon (software): Difference between revisions
m Bot: Migrating 11 interwiki links, now provided by Wikidata on d:q1857280 (Report Errors) |
→top: unnecessary hatnotes |
||
(40 intermediate revisions by 21 users not shown) | |||
Line 1: | Line 1: | ||
{{For|the representation of crystal lattice vibrations within quantum mechanics|Phonon}} |
|||
{{Infobox software |
{{Infobox software |
||
| name |
| name = Phonon |
||
| logo |
| logo = [[File:Phonon-logo.png|Phonon Logo]] |
||
| screenshot |
| screenshot = Phononsettings.png |
||
| screenshot size = 250px |
|||
| caption |
| caption = An early screenshot of Phonon's setting manager |
||
| author = |
|||
| author = |
|||
| developer |
| developer = [http://phonon.kde.org/cms/1009 Matthias Kretz u.a.]{{Citation needed|date=February 2012}}<!-- 404 2012-02-25 --> |
||
| released = |
|||
| released = {{Start date and age|2008|01|11}}<ref>{{cite web |url=https://kde.org/announcements/4.0/ |title=KDE 4.0 Released |date=2018-01-11 |access-date=2019-10-23}}</ref> |
|||
| latest release version = 4. |
| latest release version = 4.11.1 |
||
| latest release date |
| latest release date = {{Start date and age|2019|09|26}}<ref>{{cite web |url=https://community.kde.org/Phonon/Releases/Core/4.11.1 |title=Release announcement for Phonon 4.11.1 |date=2019-09-26 |access-date=2019-10-23}}</ref> |
||
⚫ | |||
| latest preview |
| latest preview version = |
||
⚫ | |||
| frequently updated = |
|||
| programming language |
| programming language = [[C++]] |
||
| operating system |
| operating system = [[Linux]], [[Berkeley Software Distribution|BSD]], [[macOS]], [[Solaris (operating system)|Solaris]], [[Microsoft Windows|Windows]] |
||
| platform |
| platform = |
||
| size |
| size = |
||
| language |
| language = |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
| repo = {{URL|https://invent.kde.org/libraries/phonon}} |
|||
⚫ | |||
| website |
| website = {{URL|https://userbase.kde.org/Phonon}} |
||
}} |
}} |
||
⚫ | |||
⚫ | |||
⚫ | Phonon was originally created to allow KDE |
||
⚫ | 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 (software)|Qt]] style multimedia API, to better support native multimedia frameworks on [[Microsoft Windows|Windows]] and [[macOS]], and to fix problems of frameworks becoming unmaintained or having API or [[Application binary interface|ABI]] instability. |
||
For example, a file can be played in four lines of [[C++]] code,<ref>{{cite web |
For example, a file can be played in four lines of [[C++]] code,<ref>{{cite web |
||
|url=http://api.kde.org/4.0-api/kdelibs-apidocs/phonon/html/classPhonon_1_1MediaObject.html |
|url = http://api.kde.org/4.0-api/kdelibs-apidocs/phonon/html/classPhonon_1_1MediaObject.html |
||
|title=MediaObject Class Reference |
|title = MediaObject Class Reference |
||
| |
|access-date = 2007-12-19 |
||
|last=Kretz |
|last = Kretz |
||
|first=Matthias |
|first = Matthias |
||
⚫ | |||
⚫ | |||
|archive-url = https://web.archive.org/web/20080426020805/http://api.kde.org/4.0-api/kdelibs-apidocs/phonon/html/classPhonon_1_1MediaObject.html |
|||
|archive-date = 2008-04-26 |
|||
}} |
|||
⚫ | |||
|url=http://www.linux.com/archive/feature/54180 |
|url=http://www.linux.com/archive/feature/54180 |
||
|title=Phonon and the future of KDE multimedia |
|title=Phonon and the future of KDE multimedia |
||
| |
|access-date=2007-12-19 |
||
|date=2006-05-09 |
|date=2006-05-09 |
||
|last=Sanders |
|last=Sanders |
||
|first=N.}} |
|first=N.}} |
||
</ref> |
</ref> |
||
< |
<syntaxhighlight lang="cpp"> |
||
Phonon::MediaObject* media = new Phonon::MediaObject(this); |
Phonon::MediaObject* media = new Phonon::MediaObject(this); |
||
createPath(media, new Phonon::AudioOutput(Phonon::MusicCategory, this)); |
createPath(media, new Phonon::AudioOutput(Phonon::MusicCategory, this)); |
||
media->setCurrentSource(QUrl("/tmp/example.wav")); |
media->setCurrentSource(QUrl("/tmp/example.wav")); |
||
media->play(); |
media->play(); |
||
</syntaxhighlight> |
|||
</source> |
|||
Phonon is not designed to have every conceivable multimedia feature, but rather as a simple way to perform common functions of media players. Developers that require more control over a backend than Phonon can provide are recommended to use the native API or the GStreamer API on systems for which it is available.<ref name="Linux.com"/> |
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.<ref name="Linux.com"/> |
||
== History == |
== History == |
||
The idea behind Phonon started at [[aKademy]] 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 by [[JuK]] and [[Amarok (software)|Amarok]]. 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 by [[Qt ( |
The idea behind Phonon started at [[aKademy]] 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 by [[JuK]] and [[Amarok (software)|Amarok]]. 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 by [[Qt (software)|Qt]] 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.<ref>{{cite web |url=http://colin.guthr.ie/2010/05/qt-multimediamobility-vs-phonon-fight/ |title=Qt Multimedia/Mobility vs. Phonon: FIGHT!!! |last=Guthrie |first=Colin |access-date=2010-11-20 |archive-date=2010-05-27 |archive-url=https://web.archive.org/web/20100527111914/http://colin.guthr.ie/2010/05/qt-multimediamobility-vs-phonon-fight/ |url-status=dead }}</ref><ref>{{cite web |url=http://doc.qt.nokia.com/4.6/qtmultimedia.html |title=QtMultimedia Module |access-date=2010-11-20 |archive-date=2010-08-28 |archive-url=https://web.archive.org/web/20100828084654/http://doc.qt.nokia.com/4.6/qtmultimedia.html |url-status=dead }}</ref><ref>{{cite web |url=http://doc.qt.nokia.com/qtmobility-1.0/index.html |title=Qt Mobility Project APIs Overview |access-date=2010-11-20 |archive-date=2010-05-02 |archive-url=https://web.archive.org/web/20100502020659/http://doc.qt.nokia.com/qtmobility-1.0/index.html |url-status=dead }}</ref> |
||
== Features == |
== Features == |
||
Line 58: | Line 62: | ||
|url=http://dot.kde.org/1170773239/ |
|url=http://dot.kde.org/1170773239/ |
||
|title=The Road to KDE 4: Phonon Makes Multimedia Easier |
|title=The Road to KDE 4: Phonon Makes Multimedia Easier |
||
| |
|access-date=2007-12-19 |
||
|date=2007-02-06 |
|date=2007-02-06 |
||
|last=Unrau |
|last=Unrau |
||
Line 68: | Line 72: | ||
* Supported backends on most [[Unix-like]] systems are [[GStreamer]] and [[VLC media player|VLC]]. |
* Supported backends on most [[Unix-like]] systems are [[GStreamer]] and [[VLC media player|VLC]]. |
||
* Supported backends under Windows include [[DirectShow]], [[VLC media player|VLC]] and [[MPlayer]]. |
* Supported backends under Windows include [[DirectShow]], [[VLC media player|VLC]] and [[MPlayer]]. |
||
* Supported backend under |
* Supported backend under macOS is [[QuickTime]]. |
||
* [[xine]] and [[MPlayer]] backends are deprecated and no longer being developed.<ref>{{cite web |
* [[xine]] and [[MPlayer]] backends are deprecated on Linux and no longer being developed.<ref>{{cite web |
||
|url=http://userbase.kde.org/Phonon#Backend_libraries |
|url=http://userbase.kde.org/Phonon#Backend_libraries |
||
|title=Phonon - KDE UserBase Wiki |
|title=Phonon - KDE UserBase Wiki |
||
|access-date=2012-03-01 |
|||
|accessdate=1 March 2012 |
|||
}} |
}} |
||
</ref> |
</ref> |
||
== See also == |
|||
* [[PulseAudio]] – prevailing sound server for desktop use |
|||
* [[JACK Audio Connection Kit]] – prevailing sound server for professional audio production |
|||
==References== |
==References== |
||
Line 80: | Line 88: | ||
==External links== |
==External links== |
||
* [http://phonon.kde.org/ Phonon home page] |
* [https://web.archive.org/web/20120501090914/http://phonon.kde.org/ Phonon home page] |
||
* [https:// |
* [https://invent.kde.org/libraries/phonon Phonon code] (hosted in invent.kde.org) |
||
{{KDE}} |
{{KDE}} |
||
Line 87: | Line 95: | ||
{{DEFAULTSORT:Phonon (Kde)}} |
{{DEFAULTSORT:Phonon (Kde)}} |
||
⚫ | |||
⚫ | |||
[[Category:KDE Platform]] |
[[Category:KDE Platform]] |
||
⚫ | |||
[[Category:Multimedia frameworks]] |
[[Category:Multimedia frameworks]] |
||
⚫ | |||
[[de:KDE Software Compilation 4#Phonon]] |
Latest revision as of 15:28, 4 February 2024
Developer(s) | Matthias Kretz u.a.[citation needed] |
---|---|
Initial release | January 11, 2008[1] |
Stable release | 4.11.1
/ September 26, 2019[2] |
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 multimedia API provided by KDE and is the standard abstraction for handling multimedia streams within KDE software and also used by several Qt applications.
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
[edit]The idea behind Phonon started at aKademy 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 by JuK and Amarok. 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 by Qt 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]
Features
[edit]- 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 Solid, Phonon gives users greater control over accessories like headsets, speakers, and microphones. An example was given that one could have a VoIP conversation only be played through one's headset, but have all other sounds come out through speakers.[8]
Backends
[edit]- 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
[edit]- PulseAudio – prevailing sound server for desktop use
- JACK Audio Connection Kit – prevailing sound server for professional audio production
References
[edit]- ^ "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
[edit]- Phonon home page
- Phonon code (hosted in invent.kde.org)