XMMS2 - XMMS2
![]() | |
| Utvecklare | XMMS-teamet |
|---|---|
| Stabil frisättning | 0,8 DrO + WIP / 20 oktober 2011
|
| Förhandsgranska release | 0,9 DrP
|
| Förvar |
|
| Operativ system | Unix-liknande |
| Tillgänglig i | C |
| Typ | Ljudspelare |
| Licens | LGPL-2.1-eller senare |
| Hemsida | www.xmms2.org |
XMMS2 ( X-platform Music Multiplexing System 2 ) är en ny generation av XMMS- ljudspelaren. Det är en ny design, skriven från grunden, separat från XMMS- kodbasen. Medan Peter Alm, en av de ursprungliga författarna till XMMS, var ansvarig för den ursprungliga designen och kodningen av XMMS2 (slutet av 2002 till början av 2003), har han sedan gått vidare med ansvaret för att vidareutveckla projektet till Tobias Rundström och Anders Gustafsson. LXMusic, standardprogrammet för musikspelare i LXDE , är en XMMS2-klient.
Designkoncept
XMMS2 lånar koncept från XMMS-era musikspelare, till exempel uppspelningskontroll, en spellista , plugins , användarkonfigurerbart GUI och lägger till funktioner som ett mediebibliotek och en klient-server- design.
Precis som XMMS har XMMS2 en plugin- arkitektur; en typ av modulär arkitektur där vissa funktioner delegeras till laddningsbara bibliotek som tillhandahåller vissa funktioner vid körning . XMMS kände igen fem olika typer av plugins:
- Input plugins för läsning och avkodning av filer eller strömmar.
- Output-plugins för att hantera ljudutdata.
- Effekter plugins för att lägga till effekter till avkodad ljuddata innan de matas ut.
- Plugins för visualisering för att ge visuella animationer som varierar beroende på vilket ljud som spelas.
- Allmänna insticksprogram som möjliggör diverse funktioner som att styra XMMS via en infraröd fjärrkontroll eller en joystick.
XMMS2 känner också igen fem typer av plugins, men de utför ganska olika funktioner:
- Transport plugins för att läsa filer eller strömmar.
- Avkodningsinsticksprogram för avkodningsdata som läses av transportinsticksprogram
- Effekt-plugins för att lägga till effekter till avkodad ljuddata innan de matas ut.
- Output-plugins för att hantera ljudutdata.
- Plugin-program för spellista för att hantera import och export av spellistdata.
Till skillnad från XMMS2 hade XMMS inget bibliotek där den lagrade information om en användares mediasamling. De enda mediaressurserna XMMS kände till var dess spellista. Från och med 2000 började spelare som Winamp och SoundJam MP implementera enkla databasfunktioner som gör det möjligt för spelaren att "komma ihåg" var en användares media finns, samt att cacha metadata lagrade i filerna som artist, titel, datum lagt till och spela räkna.
XMMS2s mediebibliotek är väl integrerat med spellistan. Denna integration innebär att varje fil eller ström som läggs till i spellistan har sina metadata automatiskt cachat av mediebiblioteket. Detta händer bara en gång för varje unik webbadress, så metadata läses inte igen om de redan finns i biblioteket. Förutom metadata kan mediebiblioteket också snabbt och effektivt spara och ladda om spellistor, vilket gör en användares musiksamling tillgänglig från en enda plats.
En funktion av XMMS2 som sällan har implementerats i mediaspelare är dess klientserverarkitektur. XMMS2 tillåter användaren att välja mellan ett antal gränssnittsimplementeringar för att söka, välja och spela media och sedan stänga gränssnittet medan ljudet spelas "i bakgrunden". Gränssnittet kan öppnas när som helst för vidare användning. Andra spelare med liknande funktioner på * nix inkluderar Music Player Daemon och Music on Console .
Designen
När XMMS2 först blev tänkt var det helt enkelt ett delat bibliotek . Det vill säga att XMMS2 skulle vara back end-kod för att ta hand om mekaniken för avkodning och uppspelning av ljudströmmar, vilket kräver att de kopplas till ett kompilerat program som tillhandahåller ett användargränssnitt. Konceptet utvidgades senare till en klient-servermodell för att möjliggöra en mer flexibel koppling mellan front-end och back-end. Fördelarna med detta tillvägagångssätt är:
- Detta gör att alla kompatibla klienter kan ansluta till och styra en enda instans av XMMS2- demonen .
- Kunder kan erbjuda olika typer av användargränssnitt - grafiskt eller textbaserat, implementerat med hjälp av olika verktygssatser, integrerade med olika skrivbordsmiljöer .
- Klientutvecklare kan koncentrera sig på att förbättra användbarheten i deras gränssnitt och inte oroa sig för uppspelningskod.
- Användningen av TCP-uttag gör det också möjligt för användare att fjärrstyra XMMS2-demoner över ett TCP / IP-nätverk.
Medan plugin-arkitekturen för XMMS tillät den att vara ganska utdragbar, var den ineffektiv på vissa sätt; XMMS2 försöker förbättra det.
- XMMS har Input-plugins som tar hand om att läsa data och avkoda det till ljud. XMMS2 delar upp detta i ett transportsteg och ett avkodningssteg, så att ett enda transportpluggin kan leverera data av vilken typ som helst till vilket avkodarplugin som helst (till exempel ett HTTP-plugin som läser mp3-data från en webbplats).
- Allmänna plugins kan visa sig vara mindre relevanta i XMMS2, eftersom deras syfte kan betjänas av fristående klienter, men plugin-arkitekturen kommer fortfarande att finnas.
- XMMS kan inte hantera behållarformat på ett allmänt sätt. XMMS2-arkitekturen gör det lättare att bygga stöd för containerformat.
XMMS2 och andra projekt
Namnet "XMMS2" valdes av Peter Alm och Tobias Rundström när de började arbeta med projektet och uppenbarligen avsåg att det skulle bli efterträdaren till XMMS. Men andra utvecklare började använda namnet (2003) innan Peter och Tobias någonsin släppte sin kod:
- Ett annat projekt med namnet XMMS2 beskrevs som "en Gtk 2-port för de välkända xmms." Detta var inte relaterat till projektet som diskuterades i resten av den här artikeln. Projektet har nu avbrutits och tagits bort från GNU Savannah .
- En bättre känd GTK + 2- port för XMMS är Beep Media Player, som ibland kallas (felaktigt) som XMMS2. Den BMP FAQ förklarar att projektets förhållande till XMMS.
En subtil skillnad mellan XMMS- och XMMS2- akronymerna är att XMMS står för X (ursprungligen för X11 och sedan plattform) MultiMedia System , men XMMS2 står för X (Cross-platform) multiplexeringssystem för musik . Detta beslut gjordes för att klargöra att XMMS2 bara någonsin skulle vara en ljudspelare och inte en allmän multimediaspelare med videostöd.
