Zenelejátszó program – 0. rész
Az „Alkalmazásfejlesztés élesben” rovat létrehozásakor az volt a célom, hogy olyan kódrészletek, alkalmazások készüljenek el szemléltetve a C# nyelv képességeit, amik nem állatorvosi lovak és valami hasznosat is végeznek. Azonban itt az idő, hogy szintet lépjünk és egy komplexebb alkalmazást készítsünk.
A komplex alkalmazás, mint ahogy a címből is kiderül, egy zenelejátszó program lesz.
Felmerülhet a kérdés, hogy miért? Tudom, hogy manapság sokan Spotify vagy valami streaming szolgáltatásról hallgatnak zenéket. Azonban én abba a szűk rétegbe tartozom, aki ha kijön egy album, megveszi CD-n is, illetve amilyen zenéket én hallgatok, azokból sok Spotify-on meg sem található, vagy ha mégis, akkor rövidített radio edit formában van fent.
Az előző bekezdésből kiderülhet, hogy nem a világot megváltó szuper népszerű alkalmazás létrehozása a cél, hanem egy olyan lejátszóé, ami az igényeimnek megfelel, amolyan Winamp klón lesz. Ezen felül és nagyon nem utolsó sorban véleményem szerint rengeteget lehet tanulni egy ilyen projektből és látványos is.
A sorozat előreláthatólag nem lesz rövid, mivel minden témát ki szeretnék részletesen fejteni. Ebből adódóan nem biztos, hogy minden héten folytatással fog jelentkezni, de tervem szerint hamarább és összeszedettebben fognak megjelenni a részek, mint a letöltés mappa rendező esetén.
Követelmények
Minden program esetén a specifikáció az első legfontosabb lépés. A lejátszó MVP (Minimal Viable Product – Mimálisan életképes termék) definícióját a következőképpen határoztam meg:
- Mp3/Ogg/M4a/Aac/Alac/Flac/WavPack formátumok támogatása
- PLS/M3U lejátszási listák támogatása
- M4a esetén a fájlban található chapter információk kiolvasása
- Ha a fájl tartalmaz előadó és borító információt, akkor azok megjelenítése
- Lejátszási lista kezelése betöltés, mentés, rendezés, hozzáadás funkciókkal
- Audio CD lemezek lejátszása és a lemezen található CdText információk megjelenítése
- Total Commander integráció plugin segítségével
- Windows shell integráció
A fenti listában valószínűleg vannak olyan pontok, amik most még nem világosak az olvasó számára, így majd amikor a program ezen részeit tárgyaljuk, akkor részletesen belemegyünk a dolgokba.
Technológia
Mivel egy C# oldalon vagyunk evidens, hogy a nyelv C# lesz, méghozzá a 9.0 specifikáció alapján .NET 5 platformon. UI keretrendszer tekintetében a választásom a WPF-re esett, mivel ebben van a legnagyobb tapasztalatom. Ez pedig magában hordozza azt, hogy Windows-ra fogunk fejleszteni.
Architektúra tekintetében a program 64 bites operációs rendszereket fog támogatni. Ennek oka az, hogy 2021-ben nem igen van létjogosultsága a 32 bites alkalmazásoknak, mivel jó 10 éve már minden x86 processzor támogat x64 utasításokat is.
Architektúra szempontjából a felhasználói felület az MVVM-et fogja követni.
Az előző pár bekezdés ismételten halandzsának tűnhet, de majd mikor odaérünk, részletesen foglalkozunk mindennel. Folytatása következik … 🙂