Phonon es la API multimedia proporcionada por KDE y es la abstracción estándar para manejar transmisiones multimedia dentro del software KDE y también es utilizada por varias aplicaciones Qt .
Phonon se creó originalmente para permitir que el software KDE y Qt fuera independiente de cualquier marco multimedia único como GStreamer o xine y proporcionar una API estable durante toda la vida útil de una versión principal. Se hizo por varias razones: para crear una API multimedia simple estilo KDE / Qt , para soportar mejor los marcos multimedia nativos en Windows y macOS , y para solucionar problemas de marcos que no reciben mantenimiento o tienen inestabilidad de API o ABI .
Por ejemplo, un archivo se puede reproducir en cuatro líneas de código C++ , [3] en comparación con las 30 líneas del antiguo marco de audio para KDE ( aRts ) [4].
Phonon :: MediaObject * media = nuevo Phonon :: MediaObject ( este ); createPath ( medios , nuevo Phonon :: AudioOutput ( Phonon :: MusicCategory , esto )); medios -> setCurrentSource ( QUrl ( "/tmp/example.wav" )); medios -> reproducir ();
Phonon no está diseñado para tener todas las funciones multimedia imaginables, sino más bien como una forma sencilla de realizar funciones comunes de los reproductores multimedia de computadora. A los desarrolladores que requieran más control sobre un backend multimedia determinado del que Phonon puede proporcionar se les recomienda utilizar la API de medios nativa o la API GStreamer en los sistemas para los que está disponible. [4]
La idea detrás de Phonon comenzó en aKademy 2004 en Ludwigsburg, cerca de Stuttgart (Alemania), donde se tuvo que elegir una nueva API multimedia para reemplazar a aRts. No se llegó a un consenso, pero algunos desarrolladores se reunieron y decidieron intentar desarrollar un nuevo marco con múltiples backends. La primera versión se llamó KDEMM (KDE MultiMedia) y solo era compatible con JuK y Amarok . Matthias Kretz continuó trabajando en solitario en el proyecto como parte de su tesis universitaria. El proyecto cambió de nombre una vez más, pero en febrero de 2006 finalmente se eligió el nombre Phonon. El primer lanzamiento oficial fue parte de KDE 4.0 en enero de 2008, el mismo año en que Qt adoptó Phonon y lo lanzó como parte de Qt 4.4. Aunque el soporte para Phonon en Qt continuará para la serie 4.x, Qt ya reemplazó a Phonon con QtMultimedia y QtMobility. [5] [6] [7]