Die Sprache lässt sich jetzt auch je Serie und je Mediathek sagen
Das Regelwerk stand schon und wurde abgefragt — es gab nur keinen Ort, an dem man etwas hineinschreiben konnte. Jetzt steht die Wahl auf der Serienseite und im Filter-Sheet der Mediathek, beide über denselben Auswahlknopf: zwei mit demselben Inhalt liefen unweigerlich auseinander. Bei der Mediathek in einem eigenen Abschnitt, nicht zwischen den Filtern. Ein Filter schränkt ein, was zu sehen ist; das hier bestimmt, was zu hören ist — dazwischengestellt läse es sich als „nur Titel mit deutscher Tonspur zeigen". Die Rangfolge Serie → Mediathek → allgemein ist dabei von den Einstellungen zu `AudioTrackChooser.resolve` gewandert. Sie ist eine Regel, keine Ablage, und im App-Ziel gibt es kein Unit-Test-Ziel — dort liesse sie sich nicht durchspielen. Sechs Tests decken sie jetzt ab, darunter der Fall, an dem man sonst lange sucht: eine leere Zeichenkette steht in den Einstellungen für „soll der Server entscheiden" und darf nicht als Sprache gelten, sonst schaltet sie die Ebene darüber stillschweigend ab. Nebenbei bekommt das Filter-Sheet die Mediathek selbst statt nur ihrer Art. Die Genres wurden vorher über irgendeine Mediathek dieser Art nachgeschlagen — bei zwei Filmmediatheken also über die falsche. Und der Puffer steht auf einer Minute statt auf 25 Sekunden. Es ist ein Mindestwunsch, keine Obergrenze; der harte Deckel liegt ohnehin woanders, nämlich darin, wie weit der Transcoder schon produziert hat. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
596a143545
commit
983015b9ad
@@ -198,11 +198,17 @@ final class PlayerModel {
|
||||
/// Vorrat hieße dort eine halbe Minute Verzug und ein Umschalten, das
|
||||
/// sich zäh anfühlt. Eine Datei von der Platte braucht keinen Vorrat.
|
||||
///
|
||||
/// Fünfundzwanzig Sekunden sind ein Anfangswert, kein Messergebnis: genug,
|
||||
/// um ein Loch von einigen Sekunden zu überbrücken, wenig genug, dass der
|
||||
/// Start nicht spürbar später kommt. Die richtige Zahl gehört mit einer
|
||||
/// gedrosselten Leitung ermittelt.
|
||||
private static let forwardBuffer: Duration = .seconds(25)
|
||||
/// **Ein Mindestwunsch, keine Obergrenze.** AVPlayer darf mehr holen; wir
|
||||
/// sagen ihm nur, dass er sich nicht mit weniger zufriedengeben soll, als
|
||||
/// er von sich aus täte.
|
||||
///
|
||||
/// Eine Minute. Der Preis ist Datenvolumen, das beim Spulen verfällt, und
|
||||
/// Speicher — beides tragbar. Der harte Deckel liegt ohnehin woanders:
|
||||
/// rechnet der Server gerade um, existieren die Schnipsel noch gar nicht,
|
||||
/// und weiter voraus als ffmpeg produziert hat kommt niemand. Jellyfins
|
||||
/// eigene Drosselung ist dabei nicht im Spiel — sie ist standardmässig
|
||||
/// aus und griffe erst bei 180 Sekunden.
|
||||
private static let forwardBuffer: Duration = .seconds(60)
|
||||
|
||||
/// Wie oft der Zustand des Streams geprüft wird.
|
||||
///
|
||||
|
||||
Reference in New Issue
Block a user