Die Kachel ließ sich nicht mehr öffnen, und das war kein Zufall: das Antippen zeigte erst die Bedienelemente, und die zweite Berührung sollte vergrößern — traf dabei aber den Abspielknopf, der genau in der Mitte lag. Jede weitere Berührung landete wieder dort. Vergrößern war damit überhaupt nicht möglich. Jetzt gehört die Mitte dem Vergrößern, und zwar beim ersten Antippen. Die zwei Knöpfe — Pause und Schließen — sitzen dauerhaft sichtbar in den oberen Ecken, auf einer dunklen Scheibe, damit sie auf hellen Filmbildern nicht verschwinden. Unten bleibt der Fortschrittsbalken. Dass die Kachel „einfach weg" war, konnte ich nicht nachstellen; der eine Fall, den ich reproduziert habe, war mein eigener Attrappenserver mit einer Fortsetzungsstelle jenseits des Dateiendes. Zwei Dinge machen es trotzdem unwahrscheinlicher: die Knöpfe sind auch dann zu sehen, wenn das Bild schwarz bliebe — vorher war eine schwarze Kachel in einer fast schwarzen Oberfläche praktisch unsichtbar —, und die Bildfläche hängt jetzt in einer eigenen Hülle je Ansicht. Beim Wechsel zwischen Kachel und Vollbild gibt es beide kurz gleichzeitig, und eine `UIView` hat nur einen Vorgesetzten: wer sie zuletzt bekommt, gewinnt. Gab SwiftUI sie unmittelbar heraus, konnte das Abräumen der einen der anderen die Bildfläche wegnehmen. Dazu etwas, das mir beim Ausprobieren selbst passiert ist: der Aufmacher wanderte weiter, während ich nach „Abspielen" griff, und ich startete den falschen Film. Er hört jetzt bei der ersten Berührung auf zu wandern. Wer die Hand darauf hat, fährt selbst. Nachgesehen auf iPhone und iPad: verkleinern, antippen, wieder im Vollbild. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Jellyfin-Attrappe
Ein Server, der so tut, als wäre er Jellyfin — gerade so viel, dass die App sich anmelden und stöbern kann. Gedacht fürs Ansehen der Oberfläche, nicht fürs Prüfen der Protokollschicht; dafür gibt es Tests mit aufgezeichneten Antworten.
python3 Tools/JellyfinStub/server.py
Dann in der App Mit Jellyfin anmelden → 127.0.0.1 eintragen. Quick
Connect bestätigt sich nach drei Abfragen von selbst, damit der Bildschirm mit
dem Code sichtbar wird und die Anmeldung trotzdem durchläuft.
Die Bilder sind einfarbige Flächen, deren Farbe aus der Kennung des Titels entsteht. Das ist Absicht: so lässt sich auf einen Blick erkennen, ob der Aufmacher tatsächlich weiterwandert und ob eine Kachel das Bild zeigt, das zu ihr gehört.
Abgespielt wird sample.mp4 — zehn Sekunden Farbverlauf, mit einem kleinen
Swift-Programm erzeugt. Der Server beantwortet Bereichsanfragen, weil der
Systemplayer eine Datei nie am Stück holt.
Was hereinkommt, steht unter http://127.0.0.1:8096/__reports: jede
Wiedergabemeldung mit ihrem Anfragekörper. Damit lässt sich prüfen, ob die App
den Beginn meldet, ob der Fortschritt in Ticks ankommt und ob am Ende
abgeräumt wird.
Mit --unanalysed melden die Quellen keine Spuren. Dann entscheidet die App
wie bei einem Server, der eine Datei noch nicht untersucht hat.
Kein echter Server wird dabei angefasst, und es gehen keine Zugangsdaten über die Leitung.