Eine moderne Vue.js-Anwendung für einen professionellen Audio-Player mit Visualisierung.
- Audio-Visualisierung: 7 verschiedene Visualizer-Modi (Ribbon, Waves, Nebula, Spectrum, Orbits, Starfield, Grid)
- Playlist-Management: Drag & Drop, Shuffle, Loop, Vor/Zurück Navigation
- Umfassendes Format-Support: MP3, WAV, FLAC, M4A, OGG und weitere
- Responsive Design: Perfekt auf Desktop, Tablet und Smartphone
- Dark/Light Theme: Anpassbar an Ihre Präferenzen
- Mehrsprachigkeit: Deutsch und Englisch
- Kostenlos & Open Source: Keine Registrierung erforderlich
- Node.js (Version 16 oder höher)
- npm oder yarn
- Abhängigkeiten installieren:
npm install- Entwicklungsserver starten:
npm run dev- Für Produktion bauen:
npm run build- Produktions-Build testen:
npm run previewmusic-player-vue/
├── src/
│ ├── assets/
│ │ └── styles/
│ │ └── main.css # Globale Styles
│ ├── components/
│ │ ├── AppHeader.vue # Header mit Theme & Sprache
│ │ ├── NavigationTabs.vue # Navigation
│ │ ├── ContentSection.vue # Inhaltsbereich
│ │ ├── AudioUploader.vue # Datei-Upload
│ │ ├── AudioVisualizer.vue # Canvas-Visualisierung
│ │ ├── VisualizerControls.vue# Visualizer-Einstellungen
│ │ ├── ProgressBar.vue # Fortschrittsbalken
│ │ ├── VolumeControl.vue # Lautstärke-Steuerung
│ │ ├── PlayerControls.vue # Play/Pause/Stop etc.
│ │ ├── Playlist.vue # Playlist-Anzeige
│ │ ├── FAQSection.vue # FAQ-Bereich
│ │ └── CookieBanner.vue # Cookie-Hinweis
│ ├── composables/
│ │ ├── useAudioPlayer.js # Audio-Logik
│ │ ├── useVisualizer.js # Visualisierungs-Logik
│ │ └── useTheme.js # Theme-Verwaltung
│ ├── i18n/
│ │ ├── index.js # I18n-Konfiguration
│ │ └── locales/
│ │ ├── de.js # Deutsche Übersetzungen
│ │ └── en.js # Englische Übersetzungen
│ ├── stores/
│ │ └── playerStore.js # Pinia Store
│ ├── App.vue # Haupt-Komponente
│ └── main.js # App-Einstiegspunkt
├── public/ # Statische Assets
├── index.html # HTML-Template
├── package.json # Dependencies
├── vite.config.js # Vite-Konfiguration
└── README.md # Diese Datei
Die Anwendung nutzt die moderne Composition API für bessere Code-Organisation und Wiederverwendbarkeit.
Alle Player-Stati werden zentral in einem Pinia Store verwaltet:
- Audio-Dateien und Playlist
- Aktueller Wiedergabe-Status
- Loop/Shuffle-Einstellungen
- Visualizer-Konfiguration
Wiederverwendbare Logik ist in Composables gekapselt:
- useAudioPlayer: Web Audio API, Playback-Steuerung
- useVisualizer: Canvas-Rendering und Animationen
- useTheme: Dark/Light Mode Verwaltung
Mehrsprachigkeit wird über Vue I18n realisiert mit:
- Deutsch (Standard)
- Englisch
- LocalStorage-Persistierung
- Klicken Sie auf "Audio auswählen"
- Wählen Sie eine oder mehrere Audiodateien aus
- Die Dateien werden automatisch zur Playlist hinzugefügt
- Modus: Wählen Sie zwischen 7 verschiedenen Visualizer-Modi
- Intensität: Passen Sie die Intensität der Visualisierung an
- Klicken Sie auf einen Titel, um ihn abzuspielen
- Nutzen Sie das Papierkorb-Icon zum Löschen einzelner Titel
- "Löschen"-Button leert die komplette Playlist
- Leertaste: Play/Pause
- Pfeil rechts/links: Im Progress-Bar spulen
Bearbeiten Sie die CSS-Variablen in src/assets/styles/main.css:
:root {
--primary: #00d4ff;
--primary-2: #ff007c;
/* ... weitere Farben */
}- Erstellen Sie eine neue Datei in
src/i18n/locales/(z.B.fr.js) - Fügen Sie die Sprache in
src/i18n/index.jshinzu - Erweitern Sie den Language-Switcher in
AppHeader.vue
- Fügen Sie die draw-Funktion in
useVisualizer.jshinzu - Erweitern Sie den Switch-Case in der
draw()-Methode - Fügen Sie die Option in
VisualizerControls.vuehinzu
- vue: ^3.4.0 - Vue.js Framework
- pinia: ^2.1.7 - State Management
- vue-i18n: ^9.9.0 - Internationalisierung
- @vitejs/plugin-vue: ^5.0.0 - Vite Vue Plugin
- vite: ^5.0.0 - Build Tool
- Chrome/Edge: ✅ Vollständig unterstützt
- Firefox: ✅ Vollständig unterstützt
- Safari: ✅ Vollständig unterstützt
- Opera: ✅ Vollständig unterstützt
Open Source - Frei verwendbar
- Komponenten: Single File Components (.vue)
- Styling: Scoped CSS + Globale Styles
- State: Pinia Store (Composition API)
- Reactivity: Vue 3 Composition API
- Komponenten sind klein und fokussiert
- Logik ist in Composables ausgelagert
- Props und Emits sind klar definiert
- Accessibility (ARIA-Labels, Keyboard-Support)
- Prüfen Sie, ob das Audio-Format vom Browser unterstützt wird
- Stellen Sie sicher, dass der Browser Autoplay erlaubt
- Der Visualizer startet erst beim Abspielen
- Prüfen Sie die Browser-Console auf Fehler
- Führen Sie
npm installerneut aus - Löschen Sie den
node_modulesOrdner und installieren Sie neu
Bei Fragen oder Problemen erstellen Sie bitte ein Issue auf GitHub oder kontaktieren Sie uns über die Website.
Dinko Ramić Kodini Tools kodinitools.com