v2.52.4 — Einstellungen (F4): Auto-Sync-Intervall, Sleep-Timer-Default, Wiedergabegeschwindigkeit, Akzentfarbe, Storage-Info

This commit is contained in:
Dustin
2026-08-05 11:05:55 +02:00
parent 187b26603b
commit bc3357bf72
7 changed files with 411 additions and 17 deletions
+32
View File
@@ -68,6 +68,29 @@ class PlayerService extends ChangeNotifier {
final StreamController<Song?> _songWechsel = StreamController.broadcast();
Stream<Song?> get onSongWechsel => _songWechsel.stream;
// ─── Wiedergabegeschwindigkeit (F4) ───
double _geschwindigkeit = 1.0;
/// Aktuelle Wiedergabegeschwindigkeit (0.52.0, Default 1.0).
double get geschwindigkeit => _geschwindigkeit;
/// Setzt die Wiedergabegeschwindigkeit (just_audio `setSpeed`) und merkt
/// sie sich, damit [spiele] sie auf jede neue Quelle anwendet (just_audio
/// setzt die Geschwindigkeit bei `setUrl`/`setFilePath` auf 1.0 zurück).
Future<void> setGeschwindigkeit(double wert) async {
_geschwindigkeit = wert.clamp(0.5, 2.0).toDouble();
if (_player != null) {
try {
await _p.setSpeed(_geschwindigkeit);
} catch (e) {
debugPrint('setSpeed fehlgeschlagen: $e');
MeloLogger().fehler('player_speed', e);
}
}
notifyListeners();
}
// ─── Zufallsmodus (Shuffle) ───
bool get zufallsmodus => _zufallsmodus;
@@ -138,6 +161,15 @@ class PlayerService extends ChangeNotifier {
}
if (position > 0) await _p.seek(Duration(seconds: position));
await _p.play();
// Wiedergabegeschwindigkeit aus der Einstellung anwenden (just_audio
// setzt sie bei jeder neuen Quelle zurück auf 1.0)
if (_geschwindigkeit != 1.0) {
try {
await _p.setSpeed(_geschwindigkeit);
} catch (e) {
debugPrint('setSpeed fehlgeschlagen: $e');
}
}
_songWechsel.add(song);
notifyListeners();
// Abspiel-Historie für den Jahres-Recap registrieren