Telecomando remoto moderno per VLC Media Player
Un'applicazione Flutter cross-platform per controllare VLC Media Player da remoto tramite rete locale.
Caratteristiche • Installazione • Utilizzo • Configurazione VLC • English Version • Changelog
- ✅ Controllo Completo: Play, Pause, Stop, Avanti, Indietro
- ✅ Gestione Volume: Mappatura precisa 0-100% con sincronizzazione atomica
- ✅ Seek Bar: Navigazione temporale fluida con protezione dai salti
- ✅ Fullscreen: Toggle modalità schermo intero
- ✅ Kill VLC: Terminazione forzata di tutte le istanze VLC (locale e remota)
- ✅ Anteprima Playlist: Visualizza i titoli della playlist generata prima di avviare la riproduzione (integrato con MyPlaylist)
- ✅ Sincronizzazione Robusta: Cancellazione echi del server per dati sempre accurati
- Material Design 3: Design moderno e accattivante
- Dark/Light Mode: Supporto temi chiaro e scuro
- Animazioni Fluide: Transizioni e feedback visivi
- Responsive: Ottimizzato per phone, tablet e desktop
- Connessioni Multiple: Salva e gestisci più server VLC
- Preferiti: Marca le connessioni più usate
- Auto-Reconnect: Riconnessione automatica all'ultima connessione
- Validazione Input: Controlli di validità per IP e porta
- Provider Pattern: State management con Provider
- Servizi Separati: Architettura modulare e manutenibile
- Aggiornamenti Real-time: Stato sincronizzato automaticamente
- Error Handling: Gestione errori robusta
- ✅ Android
- ✅ iOS
- ✅ Linux
- ✅ Windows
- ✅ macOS
- ✅ Web
- Flutter SDK >= 3.10.3
- Dart SDK >= 3.0.0
- VLC Media Player installato sul computer
- Rete locale (stessa WiFi/LAN)
git clone https://github.com/losciuto/vlcremote-flutter.git
cd vlcremote-flutterflutter pub get# Android
flutter run -d android
# iOS
flutter run -d ios
# Linux
flutter run -d linux
# Windows
flutter run -d windows
# Web
flutter run -d chromePrima di utilizzare l'app, devi avviare VLC con l'interfaccia RC (Remote Control) abilitata:
vlc /path/to/playlist.m3u --intf rc --rc-host 0.0.0.0:8000"C:\Program Files\VideoLAN\VLC\vlc.exe" "C:\path\to\playlist.m3u" --intf rc --rc-host 0.0.0.0:8000Parametri:
--intf rc: Abilita l'interfaccia Remote Control--rc-host 0.0.0.0:8000: Ascolta su tutte le interfacce di rete sulla porta 8000
ip addr show | grep inetifconfig | grep inetipconfigCerca l'indirizzo IP della tua rete locale (es. 192.168.1.15)
- Apri l'app VLC Remote
- Tocca l'icona di connessione in alto a destra
- Tocca "Nuova Connessione"
- Inserisci:
- Nome: Un nome descrittivo (es. "VLC Casa")
- IP: L'indirizzo IP del computer (es.
192.168.1.15) - Porta: La porta configurata (default:
8000)
- Tocca "Salva e Connetti"
Una volta connesso, puoi:
▶️ Play/Pause/Stop: Controlla la riproduzione- ⏮️⏭️ Prev/Next: Naviga tra i brani
- 🔊 Volume: Aumenta/Diminuisci il volume
- 🖥️ Fullscreen: Attiva/Disattiva schermo intero
- 📊 Seek: Scorri la timeline del video
- 📝 Playlist: Visualizza e seleziona i brani (in sviluppo)
Per evitare di dover avviare VLC da terminale ogni volta, puoi creare uno script:
Crea un file vlc-remote.sh:
#!/bin/bash
vlc /path/to/your/playlist.m3u --intf rc --rc-host 0.0.0.0:8000Rendilo eseguibile:
chmod +x vlc-remote.shCrea un file vlc-remote.bat:
@echo off
"C:\Program Files\VideoLAN\VLC\vlc.exe" "C:\path\to\playlist.m3u" --intf rc --rc-host 0.0.0.0:8000Se la porta 8000 è già in uso, puoi cambiarla:
vlc playlist.m3u --intf rc --rc-host 0.0.0.0:9000Ricorda di usare la stessa porta nell'app!
Dalla versione 2.5.0, VlcRemote supporta l'API HTTP di VLC per una maggiore robustezza nel polling di playlist e stato. L'API HTTP richiede l'inserimento di una password in VLC:
- Avvia VLC normalmente (senza file multimediali) e vai in Strumenti -> Preferenze -> spunta "Tutto" (in basso a sinistra).
- Nel menù a sinistra: Interfacce primarie -> seleziona Web.
- Espandi "Interfacce primarie" -> Lua -> in "Interfaccia HTTP" inserisci una Password (ad es. "1234").
- Chiudi VLC.
- In alternativa, puoi avviare VLC da riga di comando o script combinando entrambe le interfacce (
rcehttp):vlc --extraintf=http --http-password="tua-password" --intf rc --rc-host 0.0.0.0:8000 - Nella pagina di configurazione di VlcRemote, inserisci la password impostata in precedenza, assicurandoti che l'IP e la porta (di solito
8080per HTTP se omessa quella speciale) corrispondano a quelli di VLC. Nota: se la porta HTTP differisce dalla porta del Socket (es. HTTP su 8080 e Socket su 8000) potresti aver bisogno di testare quale far prevalere. Attualmente VlcRemote riutilizza lo stesso numero di porta per entrambi i servizi.
lib/
├── main.dart # Entry point
├── models/ # Modelli dati
│ ├── vlc_connection.dart
│ ├── vlc_status.dart
│ └── playlist_item.dart
├── services/ # Servizi business logic
│ ├── vlc_service.dart
│ └── connection_service.dart
├── providers/ # State management
│ └── vlc_provider.dart
├── screens/ # Schermate
│ └── home_screen.dart
└── widgets/ # Widget riutilizzabili
├── connection_dialog.dart
├── control_panel.dart
├── now_playing_card.dart
└── playlist_panel.dart
- Provider: State management reattivo
- Service Layer: Separazione logica di business
- Repository Pattern: Gestione dati persistenti
flutter build apk --releaseflutter build appbundle --releaseflutter build ios --releaseflutter build linux --releaseflutter build windows --releaseflutter testflutter analyze- provider: State management
- shared_preferences: Storage locale
- http: Comunicazione di rete (future)
- network_info_plus: Informazioni rete
- intl: Internazionalizzazione
- Implementazione completa gestione playlist
- Auto-discovery VLC sulla rete locale
- Supporto HTTP API di VLC
- Widget per controllo rapido
- Supporto multi-lingua (IT, EN, ES, FR, DE)
- Temi personalizzabili
- Gesture controls (swipe per volume/seek)
- Notifiche per cambio brano
- Streaming audio/video
- Equalizzatore
- Sottotitoli
- Chromecast support
I contributi sono benvenuti! Per favore:
- Fai un Fork del progetto
- Crea un branch per la tua feature (
git checkout -b feature/AmazingFeature) - Commit le tue modifiche (
git commit -m 'Add some AmazingFeature') - Push al branch (
git push origin feature/AmazingFeature) - Apri una Pull Request
Questo progetto è rilasciato sotto licenza MIT. Vedi il file LICENSE per i dettagli.
losciuto
- Versione originale Android: losciuto/vlcremote
- Versione Flutter: 2.7.4 (Marzo 2026)
- VLC Media Player team per l'eccellente media player
- Flutter team per il fantastico framework
- Comunità open source per il supporto
Se incontri problemi:
- Stabilità della Connessione: Dalla versione 2.5.0 sono stati risolti problemi di memory leak legati ai timer di aggiornamento. Se l'app perde la connessione, un sistema di exponential backoff tenterà la riconnessione automatica senza sovraccaricare il dispositivo.
- Validazione IP: Assicurati di inserire indirizzi IP nel formato corretto (es.
192.168.1.15). L'app ora valida rigorosamente ogni ottetto per prevenire errori di connessione silenti. - VLC Remote Control: Ricorda che VLC deve essere avviato con l'interfaccia RC abilitata (
--intf rc --rc-host 0.0.0.0:8000).
Fatto con ❤️ e Flutter
⭐ Se ti piace questo progetto, lascia una stella!