Desktop-app
Local Music Player
En musikafspiller til Windows 10 og 11, der spiller musik fra din pc og fra FTP-servere som en NAS, en hjemmeserver eller et webhotel. Mørkt Windows 11-look, FTP-browser i siden, playlisten i midten og afspilleren i bunden.
Hvad er det?
Local Music Player er en desktop-app skrevet i C# som en .NET 10 WPF-app. Den spiller både lokale filer og musik, der ligger på en FTP-server, i én fælles playliste – uden at du først skal kopiere noget over.
Appen er én fil, LocalMusicPlayer.exe, på omkring 25 MB. Den kræver .NET 10 Desktop Runtime og husker alt mellem sessioner: playlisten, den aktuelle sang, servere, lydstyrke, shuffle/repeat, equalizer, vinduesstørrelse og sidebarens bredde.
- Platform
- Windows 10 / 11
- Én .exe-fil
- ≈ 25 MB
- Desktop Runtime
- .NET 10
- Equalizer
- 10 bånd
- Lokal musik og FTP/FTPS-servere i samme playliste
- 10-bånds equalizer med 15 presets
- Mediataster og Windows’ medie-pop-up med cover
- Mørkt Windows 11-look bygget ind i WPF
Lokal musik
Tilføj filer, hele mapper med undermapper eller .m3u/.m3u8-playlister – eller træk dem bare ind i vinduet. Filer, der åbnes med “Åbn med…” eller sendes med på kommandolinjen, bliver tilføjet og begynder at spille.
Appen spiller de formater, Windows selv kan afkode: MP3, AAC/M4A, FLAC, WAV, WMA og ALAC. Titel, kunstner, album, længde og cover læses fra filernes tags i baggrunden, så playlisten ikke venter på store mapper.
- Filer, mapper (med undermapper) og .m3u/.m3u8-playlister
- Træk-og-slip og “Åbn med…” fra Stifinder
- Tags og cover læses i baggrunden
- Ogg/Opus via Microsofts gratis Web Media Extensions
FTP-servere
Du kan gemme alle de servere, du vil, med almindelig FTP, explicit FTPS eller implicit FTPS. Selvsignerede certifikater og anonymt login kan slås til pr. server, og “Test forbindelse” tjekker indstillingerne, før du gemmer.
Gennemse mapperne på serveren og dobbeltklik på en sang for at spille den, eller tilføj valgte sange, en mappe eller et helt mappetræ. Sange hentes til en lokal cache, før de spilles, og mens én sang spiller, hentes den næste i baggrunden – så der ikke er pause mellem numrene.
- FTP, explicit FTPS og implicit FTPS
- Adgangskoder krypteret med din Windows-konto (DPAPI)
- Næste sang hentes i baggrunden – ingen pause mellem numre
- Cache på maks. 2 GB; de længst ubrugte filer ryger først
Afspilning og playliste
Play/pause, næste/forrige, spol, lydstyrke og lyd fra. Shuffle undgår sange, du har hørt for nylig, og “Forrige” i shuffle går tilbage gennem det, du faktisk har hørt. Repeat kan være fra, alle eller én.
Kan en sang ikke spilles – en fil mangler, formatet understøttes ikke, eller en download fejler – markeres den i playlisten med årsagen, og afspilleren springer videre. Efter gentagne fejl giver den op i stedet for at køre i ring.
| Tast | Handling |
|---|---|
| Mellemrum | Play / pause |
| Ctrl+Venstre / Ctrl+Højre | Forrige / næste |
| Ctrl+Op / Ctrl+Ned | Lydstyrke |
| S / R / M / E | Shuffle / repeat / lyd fra / equalizer |
| Ctrl+F | Søg i playlisten |
| Enter / Delete | Spil / fjern den valgte sang |
| Backspace (FTP-listen) | Op til forældremappen |
- Søg på titel, kunstner, album eller filnavn
- Flyt med Alt+Op/Ned, fjern med Delete, åbn filens placering med højreklik
- Gem de lokale sange som .m3u8-playliste
- Viser antal sange, samlet længde og hvor mange der kommer fra FTP
Equalizer
10 bånd fra 31 Hz til 16 kHz, hver ±12 dB, plus preamp og venstre/højre-balance. Der er 15 presets – blandt andet Bass boost, Loudness, Vocal, Rock og Small speakers – og Custom, så snart du selv flytter en slider.
Ændringer høres med det samme, mens musikken spiller, og en limiter forhindrer, at kraftige boosts knaser.
- 10 bånd, 31 Hz – 16 kHz, ±12 dB
- Preamp og balance
- 15 presets plus Custom
- Limiter mod forvrængning
Sådan kommer lyden ud af højttalerne
Lyden går gennem én kæde, uanset om filen ligger lokalt eller er hentet fra FTP:
lydfil (lokal eller hentet fra FTP til cachen)
→ Media Foundation-dekoder (NAudio)
→ preamp → 10 EQ-filtre pr. kanal → lydstyrke → balance → limiter
→ højttalere
Equalizeren er skrevet i hånden: ti standardfiltre pr. kanal, den almindelige byggesten i lyd-equalizere. Når du flytter en slider, sendes de nye indstillinger til lydtråden, som tager dem i brug ved næste bid lyd – så der kommer ingen klik eller hak. Lydstyrkeændringer udglattes på samme måde.
Mediataster og et skift af lydmotor
Mediatasterne virker, også når appen ligger i baggrunden, og Windows’ medie-pop-up viser nummer og cover. NAudio forbinder ikke selv til Windows’ mediekontroller, så appen holder en skjult, lydløs Windows-medieafspiller kørende alene for at få dem – og fortæller den titel, kunstner, cover og om der spilles.
Første version spillede gennem Windows’ egen mediemotor, som gav mediataster og pop-up gratis. Da equalizeren kom på listen, viste det sig, at den motor kun har en simpel 4-bånds equalizer. Afspilningen blev derfor flyttet til NAudio, mens mediatasterne blev bevaret via den skjulte afspiller.
Kodens opbygning
Koden er delt i vinduer, services og modeller:
| Fil | Hvad den gør |
|---|---|
| MainWindow.xaml/.cs | Hovedvinduet: playliste, afspilningslogik, shuffle og repeat, FTP-browser |
| FtpProfileWindow | Dialog til at tilføje/redigere servere, med forbindelsestest |
| EqualizerWindow | Equalizer-vinduet |
| Services/AudioEngine.cs | Afspilning, spoling og mediataster |
| Services/EqualizerSampleProvider.cs | Lydbehandlingskæden |
| Services/FtpService.cs | Gennemse servere, downloads og cachen |
| Services/AudioFiles.cs, MetadataReader.cs, SettingsStore.cs | Filscanning og playlister, tags, gemte indstillinger |
| Models/ | Sange, servere, equalizer og app-indstillinger |
Indstillinger gemmes i %AppData%\LocalMusicPlayer\settings.json, og FTP-cachen ligger i %LocalAppData%\LocalMusicPlayer\Cache.