Shuffle/Wiederholung: PlaybackState meldet echten Zustand statt immer "aus"
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012A2pmbnVNPiHdyf2GW8eLP
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
40171a7c0e
commit
7dbea128e0
@@ -130,6 +130,22 @@ int startIndexNachFilter(List<bool> behalten, int startIndex) {
|
||||
return davor.clamp(0, gesamt - 1);
|
||||
}
|
||||
|
||||
/// Übersetzung des Player-Shuffle-Zustands in den `audio_service`-Wert für
|
||||
/// `PlaybackState.shuffleMode`. Als reine Funktion ausgelagert, damit sie
|
||||
/// ohne laufenden `AudioPlayer` testbar ist — `_transformEvent()` läuft bei
|
||||
/// jedem Player-Event und lässt sich nicht isoliert aufrufen.
|
||||
AudioServiceShuffleMode toAudioServiceShuffleMode(bool enabled) =>
|
||||
enabled ? AudioServiceShuffleMode.all : AudioServiceShuffleMode.none;
|
||||
|
||||
/// Übersetzung des Player-Loop-Modus in den `audio_service`-Wert für
|
||||
/// `PlaybackState.repeatMode`. Siehe [toAudioServiceShuffleMode].
|
||||
AudioServiceRepeatMode toAudioServiceRepeatMode(LoopMode loopMode) =>
|
||||
switch (loopMode) {
|
||||
LoopMode.one => AudioServiceRepeatMode.one,
|
||||
LoopMode.all => AudioServiceRepeatMode.all,
|
||||
LoopMode.off => AudioServiceRepeatMode.none,
|
||||
};
|
||||
|
||||
/// Im Offline-Modus ist keiner der gewählten Titel ohne Netz abspielbar.
|
||||
class NichtsOfflineVerfuegbar implements Exception {
|
||||
const NichtsOfflineVerfuegbar();
|
||||
@@ -633,6 +649,8 @@ class MeloAudioHandler extends BaseAudioHandler with QueueHandler, SeekHandler {
|
||||
}[_player.processingState] ??
|
||||
AudioProcessingState.idle,
|
||||
playing: _player.playing,
|
||||
shuffleMode: toAudioServiceShuffleMode(_player.shuffleModeEnabled),
|
||||
repeatMode: toAudioServiceRepeatMode(_player.loopMode),
|
||||
updatePosition: _player.position,
|
||||
bufferedPosition: _player.bufferedPosition,
|
||||
speed: _player.speed,
|
||||
|
||||
Reference in New Issue
Block a user