# Phonon (KDE)

Phonon (früher provisorisch auch KDEMM) ist die Multimedia-API der KDE-Desktopumgebung. Darüber hinaus verwendet die Qt-Bibliothek ab Version 4.4 Phonon als Multimediaschnittstelle.

## Eigenschaften

Phonon bietet Entwicklern von KDE-/Qt-Software eine einheitliche Programmierschnittstelle (API) zur Entwicklung von Audio- und Video-Anwendungen. In der Hinsicht ist es vergleichbar mit den Schnittstellen von DirectShow unter Windows und QuickTime unter macOS. Dabei wird, unter Beibehaltung der Binärkompatibilität, auf unterschiedliche Back-Ends zurückgegriffen.
Hintergrund dieser Lösung ist, dass KDE-Programme seit KDE 4.0 und Qt-Programme im Allgemeinen auch unter Windows oder Mac OS X lauffähig sind, und dort andere Multimedia-Lösungen als unter Linux verwendet werden. Zusätzlich dazu stehen unter Linux selbst mehrere konkurrierende Multimedia-Lösungen zur Verfügung (GStreamer, xine usw.). Phonon abstrahiert diese Probleme und macht sie für Entwickler von KDE-Software unerheblich.
Phonon selbst ist dabei kein Soundserver wie aRts, das noch unter KDE 3 zum Einsatz kam.

## Geschichte

Hintergrund der Entwicklung von Phonon waren vor allen Dingen technische und personelle Probleme bei aRts. aRts war in der Anfangszeit eine vielversprechende Lösung für viele damals existierende Audio-Probleme unter Linux, wurde aber über die Zeit nicht ausreichend weiterentwickelt, um mit der Entwicklung der Computer hin zu immer mehr Multimedia-Anwendungen Schritt zu halten. Als Resultat fehlten nach einigen Jahren diverse Funktionen und Möglichkeiten in aRts im Bereich der Audio-Unterstützung, Video-Unterstützung fehlte vollständig. aRts konnte aber in KDE 3 nicht ersetzt werden, da dies die Binärkompatibilität verletzt hätte.
Die Entwickler kamen nach den Erfahrungen mit aRts zu dem Schluss, dass es nicht sinnvoll ist, sich auf ein einziges Projekt zu verlassen. Daher wurde Phonon als Adapter entwickelt, um auch innerhalb der Entwicklungslinie von KDE SC 4 das Back-End wechseln zu können, wenn dies nötig erscheinen sollte, ohne dass vorhandene KDE-Anwendungen angepasst werden müssen. Hinzu kam das Problem, dass zum Zeitpunkt des Beginns der Entwicklung von KDE SC 4 auch keine einheitliche Lösung unter Linux verfügbar war: zwar wurde von vielen das Projekt GStreamer favorisiert, aber auch xine oder MPlayer boten sich als umfangreiche Lösung an.
Da andere Lösungen wie der direkte Einsatz eines bestimmten Back-Ends (wie z. B. GStreamer) ebenfalls einen Wrapper erfordert hätten, um sie an die Programmiergegebenheiten von KDE anzupassen, brachte die Phonon-Lösung nur einen vergleichsweise geringen Mehraufwand gegenüber einer Direktintegration mit sich.
Anfänglich wurde Phonon vor allen Dingen mit Hilfe eines Xine-Back-Ends entwickelt. Im Dezember 2007 steuerte Trolltech die Unterstützung für die drei Back-Ends GStreamer, QuickTime und DirectShow bei.
Mitte 2009 kündigten die inzwischen von Nokia übernommenen Qt-Entwickler an, ein neues Framework namens QtMultimedia anstelle von Phonon zu entwickeln.

## Unterstützte Back-Ends
### Haupt-Back-Ends

Aktuell (April 2011) konzentrieren die Phonon-Entwickler sich auf die Pflege und Weiterentwicklung zweier Back-Ends: VLC und GStreamer.
Das ursprünglich von Tanguy Krotoff entwickelte VLC-Back-End gilt seit November 2010 als stabil und wird zum Einsatz empfohlen.
Das GStreamer-Back-End wird trotz anfänglicher Probleme u. a. aus Speicherplatzgründen von Linux-Distributoren präferiert, da GStreamer derzeit ohnehin von LibreOffice und der Qt-Version von WebKit benötigt wird. Es wird jedoch nur für Linux empfohlen, da es auf keiner anderen Plattform getestet sei.

### Weitere Back-Ends

* avKode: Im Rahmen des Google Summer of Code 2006 wurde mit avKode ein Back-End entwickelt, das auf FFmpeg aufsetzt. Es wird aktuell (Januar 2010) nicht weiterentwickelt.
* DirectShow: Es wurde ursprünglich von Trolltech/Nokia entwickelt und nutzt das alte DirectShow-9-Framework unter Windows. Seit der Neuausrichtung bei Nokia zugunsten von QtMultimedia wird es nicht mehr aktiv weiterentwickelt.
* MMF: Die „Multimedia Framework Architecture“ (MMF) ist das Multimedia-System für S60.
* NMM: Dieses Back-End nutzt die Network-Integrated Multimedia Middleware und ist besonders auf Medienausgabe über Computer-Netzwerke ausgerichtet. Es wird seit Januar 2008 nicht mehr weiterentwickelt.
* Phonon-aRts: Phonon-aRts nutzt den aus KDE 3 bekannten Soundserver aRts. Es war geplant, dass dieser zumindest in der Anfangszeit von KDE 4 unterstützt werden sollte, um Kompatibilität mit KDE-3-Anwendungen zu gewährleisten. Er wird jedoch nicht weiterentwickelt.
* Phonon-Fake: In der Anfangsphase lediglich dazu gedacht, Phonon zu entwickeln, stellt dieses Back-End keine Audio-Ausgabe zur Verfügung.
* Phonon-mplayer: Dieses Back-End nutzt die Bibliotheken des MPlayer-Projekts. Es wurde von Tanguy Krotoff entwickelt.
* QuickTime: Es wurde ursprünglich von Trolltech/Nokia entwickelt und nutzt das QuickTime-7-Framework unter macOS. Seit der Neuausrichtung bei Nokia zugunsten von QtMultimedia wird es nicht mehr aktiv weiterentwickelt.
* xine: Ursprünglich das Standard-Back-End, wird seit 2010 aber nicht mehr weiterentwickelt und wurde mit der Veröffentlichung von Phonon 4.4.4 offiziell als nicht unterstützt gekennzeichnet.