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:
co-authored by
Claude Opus 5
parent
0bafec4838
commit
171ba99908
@@ -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 }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user