Phonon es la API multimedia proporcionada por KDE y es la abstracción estándar para manejar transmisiones multimedia dentro del software de KDE y también es utilizada por varias aplicaciones Qt .
Phonon se creó originalmente para permitir que el software de KDE y Qt sea independiente de cualquier marco multimedia como GStreamer o xine y para proporcionar una API estable durante la vida útil de una versión principal. Se hizo por varias razones: para crear una API multimedia simple al estilo de KDE / Qt , para brindar un mejor soporte a los marcos multimedia nativos en Windows y macOS , y para solucionar problemas de marcos que no reciben mantenimiento o que 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 = new Phonon :: MediaObject ( this ); createPath ( media , new Phonon :: AudioOutput ( Phonon :: MusicCategory , this )); media -> setCurrentSource ( QUrl ( "/tmp/example.wav" )); media -> play ();
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 requieren más control sobre un backend multimedia determinado del que Phonon puede proporcionar se les recomienda utilizar la API multimedia 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 fue compatible con JuK y Amarok . Matthias Kretz continuó trabajando solo 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 Phonon fue adoptado por Qt y lanzado como parte de Qt 4.4. Aunque el soporte para Phonon en Qt continuará para la serie 4.x, Qt ya ha reemplazado a Phonon con QtMultimedia y QtMobility. [5] [6] [7]