Player: nach einem Fehlschlag war dieselbe Stufe eine Sackgasse

`select(quality:)` stieg aus, wenn die Stufe bereits gewählt war. Nach
einem Fehlschlag stand sie aber schon fest — ein erneutes Antippen galt
als „keine Änderung", und es passierte nichts mehr. Man kam nur wieder
heraus, indem man eine andere Stufe nahm.

Steht die Wiedergabe auf „gescheitert", ist ein erneuter Versuch jetzt
erlaubt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-09-12 22:15:17 +02:00
co-authored by Claude Opus 5
parent 0bafec4838
commit 171ba99908
+7 -1
View File
@@ -196,7 +196,13 @@ final class PlayerModel {
/// Die Stelle wird gemerkt und danach wieder angefahren — sonst begänne der /// Die Stelle wird gemerkt und danach wieder angefahren — sonst begänne der
/// Film bei jedem Wechsel von vorn. /// Film bei jedem Wechsel von vorn.
func select(quality newQuality: PlayerQuality) async { func select(quality newQuality: PlayerQuality) async {
guard newQuality != quality, !isOffline, // Nach einem Fehlschlag darf dieselbe Stufe noch einmal versucht
// werden. Sonst wäre man eingesperrt: die gewählte Stufe steht schon
// fest, ein erneutes Antippen gilt als „keine Änderung", und es
// passiert nichts mehr.
let isRetry = { if case .failed = phase { return true } else { return false } }()
guard newQuality != quality || isRetry,
!isOffline,
let server, let item, let media = currentMedia, let part = currentPart let server, let item, let media = currentMedia, let part = currentPart
else { return } else { return }