Jump to content

Phonon (software): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Cydebot (talk | contribs)
m Robot - Speedily moving category Qt (toolkit) to Category:Qt (framework) per CFDS.
top: unnecessary hatnotes
 
(44 intermediate revisions by 25 users not shown)
Line 1: Line 1:
{{For|the representation of crystal lattice vibrations within quantum mechanics|Phonon}}
{{Infobox software
{{Infobox software
| name = Phonon
| name = Phonon
| logo = [[File:Phonon-logo.png|Phonon Logo]]
| logo = [[File:Phonon-logo.png|Phonon Logo]]
| screenshot = [[File:Phononsettings.png|250px]]
| screenshot = Phononsettings.png
| screenshot size = 250px
| caption = An early screenshot of Phonon's setting manager
| caption = An early screenshot of Phonon's setting manager
| author =
| author =
| developer = [http://phonon.kde.org/cms/1009 Matthias Kretz u.a.]{{fact|date=February 2012}}<!-- 404 2012-02-25 -->
| 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.5.0{{fact|date=February 2012}}
| latest release date = {{release date and age|2011|03|25}}
| latest release version = 4.11.1
| 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 version =
| latest preview date =
| latest preview version =
| latest preview date =
| frequently updated =
| programming language = [[C++]]
| programming language = [[C++]]
| operating system = [[Linux]], [[Berkeley Software Distribution|BSD]], [[Mac OS X]], [[Solaris (operating system)|Solaris]], [[Microsoft Windows|Windows]]
| operating system = [[Linux]], [[Berkeley Software Distribution|BSD]], [[macOS]], [[Solaris (operating system)|Solaris]], [[Microsoft Windows|Windows]]
| platform =
| platform =
| size =
| size =
| language =
| language =
| genre = [[Multimedia framework]]
| status =
| license = [[GNU Lesser General Public License]] 2.1
| genre = [[Multimedia framework]]
| repo = {{URL|https://invent.kde.org/libraries/phonon}}
| license = [[GNU Lesser General Public License]] 2.1
| website = {{url|http://phonon.kde.org/}}
| website = {{URL|https://userbase.kde.org/Phonon}}
}}
}}
'''Phonon''' is the multimedia [[application programming interface|API]] provided by [[Qt (framework)|Qt]] and is the standard abstraction for handling multimedia streams within the [[KDE Software Compilation 4]].


'''Phonon''' is the multimedia [[Application programming interface|API]] provided by [[KDE]] and is the standard abstraction for handling multimedia streams within [[KDE]] software and also used by several [[Qt (software)|Qt]] applications.
Phonon was originally created to allow KDE 4 to be independent of any single multimedia framework such as [[GStreamer]] or [[xine]] and to provide a stable API for KDE 4's lifetime. It was done for various reasons: to create a simple [[KDE]]/[[Qt (framework)|Qt]] style multimedia API, to better support native multimedia frameworks on [[Microsoft Windows|Windows]] and [[Mac OS X]], and to fix problems of frameworks becoming unmaintained or having API or [[Application binary interface|ABI]] instability. Subsequently it has been moved to Qt and can therefore be used independent of 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
|accessdate=2007-12-19
|access-date = 2007-12-19
|last=Kretz
|last = Kretz
|first=Matthias}}
|first = Matthias
|url-status = dead
</ref> compared to 30 lines in the old audio framework ([[aRts]])<ref name="Linux.com">{{cite web
|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
}}
</ref> compared to 30 lines in the old audio framework for KDE ([[aRts]])<ref name="Linux.com">{{cite web
|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
|accessdate=2007-12-19
|access-date=2007-12-19
|date=2006-05-09
|date=2006-05-09
|last=Sanders
|last=Sanders
|first=N.}}
|first=N.}}
</ref>
</ref>
<source lang="cpp">
<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, 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 (toolkit)|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!!! |author=Colin Guthrie |accessdate=2010-11-20 }}</ref><ref>{{cite web |url=http://doc.qt.nokia.com/4.6/qtmultimedia.html |title=QtMultimedia Module |accessdate=2010-11-20 }}</ref><ref>{{cite web |url=http://doc.qt.nokia.com/qtmobility-1.0/index.html |title=Qt Mobility Project APIs Overview |accessdate=2010-11-20 }}</ref>
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
|accessdate=2007-12-19
|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 Mac OS X is [[QuickTime]].
* Supported backend under macOS is [[QuickTime]].
* [[xine]] and [[MPlayer]] backends are depreciated 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://projects.kde.org/projects/kdesupport/phonon Phonon code] (hosted in git.kde.org)
* [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:Free software programmed in C++]]
[[Category:KDE Frameworks]]
[[Category:KDE Platform]]
[[Category:KDE Platform]]
[[Category:Free software programmed in C++]]
[[Category:Multimedia frameworks]]
[[Category:Multimedia frameworks]]
[[Category:Qt (framework)]]

[[ca:Phonon]]
[[de:KDE Software Compilation 4#Phonon]]
[[es:Phonon (KDE)]]
[[fa:فونون (کی‌دی‌ای)]]
[[fr:Phonon (KDE)]]
[[it:Phonon]]
[[nl:Phonon (KDE)]]
[[ja:Phonon]]
[[pl:Phonon]]
[[ru:Phonon]]
[[sk:Phonon]]
[[zh:Phonon (KDE)]]

Latest revision as of 15:28, 4 February 2024

Phonon
Developer(s)Matthias Kretz u.a.[citation needed]
Initial releaseJanuary 11, 2008; 16 years ago (2008-01-11)[1]
Stable release
4.11.1 / September 26, 2019; 5 years ago (2019-09-26)[2]
Repositoryinvent.kde.org/libraries/phonon
Written inC++
Operating systemLinux, BSD, macOS, Solaris, Windows
TypeMultimedia framework
LicenseGNU Lesser General Public License 2.1
Websiteuserbase.kde.org/Phonon

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 Work
  • 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]

See also

[edit]

References

[edit]
  1. ^ "KDE 4.0 Released". 2018-01-11. Retrieved 2019-10-23.
  2. ^ "Release announcement for Phonon 4.11.1". 2019-09-26. Retrieved 2019-10-23.
  3. ^ Kretz, Matthias. "MediaObject Class Reference". Archived from the original on 2008-04-26. Retrieved 2007-12-19.
  4. ^ a b Sanders, N. (2006-05-09). "Phonon and the future of KDE multimedia". Retrieved 2007-12-19.
  5. ^ Guthrie, Colin. "Qt Multimedia/Mobility vs. Phonon: FIGHT!!!". Archived from the original on 2010-05-27. Retrieved 2010-11-20.
  6. ^ "QtMultimedia Module". Archived from the original on 2010-08-28. Retrieved 2010-11-20.
  7. ^ "Qt Mobility Project APIs Overview". Archived from the original on 2010-05-02. Retrieved 2010-11-20.
  8. ^ a b Unrau, Troy (2007-02-06). "The Road to KDE 4: Phonon Makes Multimedia Easier". Retrieved 2007-12-19.
  9. ^ "Phonon - KDE UserBase Wiki". Retrieved 2012-03-01.
[edit]