Phonon (KDE)
   HOME

TheInfoList



OR:

Phonon is the multimedia
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
provided by
KDE KDE is an international free software community that develops free and open-source software. As a central development hub, it provides tools and resources that enable collaborative work on its projects. Its products include the KDE Plasma gra ...
and is the standard abstraction for handling multimedia streams within
KDE KDE is an international free software community that develops free and open-source software. As a central development hub, it provides tools and resources that enable collaborative work on its projects. Its products include the KDE Plasma gra ...
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 GStreamer is a Pipeline (computing), pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows. For instance, GStreamer can be used to build a system that reads files in one f ...
or
xine xine is a multimedia playback engine for Unix-like operating systems released under the GNU General Public License. xine is built around a shared library (xine-lib) that supports different frontend player applications. xine uses libraries fr ...
and to provide a stable API for a major version's lifetime. It was done for various reasons: to create a simple
KDE KDE is an international free software community that develops free and open-source software. As a central development hub, it provides tools and resources that enable collaborative work on its projects. Its products include the KDE Plasma gra ...
/ Qt style multimedia API, to better support native multimedia frameworks on
Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
and
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
, 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, compared to 30 lines in the old audio framework for KDE (
aRts The arts or creative arts are a vast range of human practices involving creativity, creative expression, storytelling, and cultural participation. The arts encompass diverse and plural modes of thought, deeds, and existence in an extensive ...
) 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.


History

The idea behind Phonon started at
aKademy Akademy (capitalized as aKademy before 2009) is an annual contributors and users conference of the KDE community. Akademy is held at varying venues in Europe. While Akademy usually takes place late summer or early autumn and is always held i ...
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 Juk or JUK may refer to: * JuK, software * Juk (food), Korean rice porridge * Juk language, a Mon–Khmer language spoken in Laos * Ukkusissat Heliport (IATA: JUK), in Greenland * Wapan language (ISO 639-3: juk), a Jukunoid language of Nigeria {{ ...
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.


Features

* 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. * 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 Solid is a state of matter where molecules are closely packed and can not slide past each other. Solids resist compression, expansion, or external forces that would alter its shape, with the degree to which they are resisted dependent upon the ...
, Phonon gives users greater control over accessories like headsets, speakers, and microphones. An example was given that one could have a
VoIP Voice over Internet Protocol (VoIP), also known as IP telephony, is a set of technologies used primarily for voice communication sessions over Internet Protocol (IP) networks, such as the Internet. VoIP enables voice calls to be transmitted as ...
conversation only be played through one's headset, but have all other sounds come out through speakers.


Backends

* Supported backends on most
Unix-like A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
systems are
GStreamer GStreamer is a Pipeline (computing), pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows. For instance, GStreamer can be used to build a system that reads files in one f ...
and VLC. * Supported backends under Windows include
DirectShow DirectShow (sometimes abbreviated as DS or DShow), codename Quartz, is a multimedia framework and API produced by Microsoft for software developers to perform various operations with media files or streams. It is the replacement for Microsoft's ea ...
, VLC and
MPlayer MPlayer is a free and open-source media player software application. It is available for Linux, OS X and Microsoft Windows. Versions for OS/2, Syllable Desktop, Syllable, AmigaOS, MorphOS and AROS Research Operating System are also available. A ...
. * Supported backend under macOS is
QuickTime QuickTime (or QuickTime Player) is an extensible multimedia architecture created by Apple, which supports playing, streaming, encoding, and transcoding a variety of digital media formats. The term ''QuickTime'' also refers to the QuickTime Pla ...
. *
xine xine is a multimedia playback engine for Unix-like operating systems released under the GNU General Public License. xine is built around a shared library (xine-lib) that supports different frontend player applications. xine uses libraries fr ...
and
MPlayer MPlayer is a free and open-source media player software application. It is available for Linux, OS X and Microsoft Windows. Versions for OS/2, Syllable Desktop, Syllable, AmigaOS, MorphOS and AROS Research Operating System are also available. A ...
backends are deprecated on Linux and no longer being developed.


See also

*
PulseAudio PulseAudio is a network-capable sound server program distributed via the freedesktop.org project. It runs mainly on Linux, including Windows Subsystem for Linux on Microsoft Windows and Termux on Android; various BSD distributions such as ...
– prevailing sound server for desktop use *
JACK Audio Connection Kit JACK Audio Connection Kit (or JACK; a recursive acronym) is a professional sound server API and pair of daemon implementations to provide real-time, low-latency connections for both audio and MIDI data between applications. JACK was developed by ...
– prevailing sound server for professional audio production


References


External links


Phonon home page

Phonon code
(hosted in invent.kde.org) {{DEFAULTSORT:Phonon (Kde) Free software programmed in C++ KDE Frameworks KDE Platform Multimedia frameworks