webOS 1.2.0: der Fernseher ist kein Handy
Die webOS-App hing sechs Wochen zurück. Sie stand auf dem Stand von Android 0.8.6, während Desktop längst bei 2.0.0 und Android bei 0.8.31 war. Jetzt ist sie nachgezogen — aber nicht indem ich Kotlin nach JavaScript übersetzt habe. Ein Fernseher hat eigene Regeln, und die bestimmen, welche Features überhaupt Sinn ergeben.
Das wichtigste Feature auf einem Fernseher: merken, dass nichts mehr läuft
Wenn ein Livestream hängt, kommt kein Fehler. Der Decoder steht einfach, das Bild friert ein, und die App denkt weiter, alles sei in Ordnung. Der Nutzer sitzt vor einem Standbild und weiß nicht, ob der Sender gerade eine Pause macht oder ob etwas kaputt ist. Erst der Senderwechsel hilft.
Der Stillstands-Wächter prüft deshalb im Sekundentakt, ob die Wiedergabeposition weiterläuft. Bleibt sie stehen, wird nach drei Sekunden neu verbunden. Drei Feinheiten stecken darin:
- 15 Sekunden Anlaufphase — am Anfang steht die Position kurz still, weil sich der Puffer füllt. Wer sofort neu verbindet, erzeugt eine Endlosschleife.
- Nie bei Filmen — bei VOD ist Stillstand normal (Pause, Spulen).
- Nie bei pausierter Wiedergabe — sonst reißt der Wächter dem Nutzer die Pause weg.
Puffer: der Unterschied zwischen „läuft" und „ruckelt"
Auf dem Handy ist ein großer Puffer egal, auf dem Fernseher ist er der ganze Unterschied. Die Pufferdauer lässt sich jetzt durchschalten — Automatik oder 3, 5, 8, 12, 20, 30 Sekunden — und wirkt direkt auf die Pufferstrategie des Players. Bewusst als Durchschalt-Knopf und nicht als Auswahlfeld: ein Aufklapp-Menü ist mit der Fernbedienung eine Sackgasse.
Programmraster statt Programmliste
Vorher zeigte die Übersicht 24 Stunden am Stück — auf einem Fernseher unbrauchbar, weil man seitlich scrollt wie in einer Tabellenkalkulation. Jetzt sind es sechs Stunden ab jetzt, die laufende Sendung ist hervorgehoben, und ein Klick auf eine Sendung startet den Sender. Der Bildlauf springt auf die aktuelle Stunde.
Staffel statt Download
Der Desktop lädt ganze Staffeln herunter. Ein Fernseher hat keinen beschreibbaren Speicher für so etwas, also wird gespielt statt geladen: eine Folgeschlange je Staffel, die bereits zu Ende gesehene Folgen überspringt, und fünf Sekunden vor dem Abspann ein Hinweis auf die nächste Folge. Die Zurück-Taste bricht ab.
Ein Fehler, der seit 1.1.0 jede Serie blockierte
Beim Testen ist mir etwas aufgefallen, das nicht neu war: Die Serien-Detailansicht ließ sich nie öffnen. Wer auf eine Serie klickte, bekam nichts — keinen Fehler, keine Meldung, einfach keine Reaktion.
Die Ursache ist eine Zeile, die in einer Ein-Datei-App besonders gemein ist. Der Parameter der Funktion hieß genauso wie eine globale Funktion:
function openSeriesDetail(show) {
show("view-series-detail"); // TypeError: show is not a function
…
}
Der Parameter show überdeckt die globale Funktion show(), die
die Ansicht wechselt. Der Aufruf wirft einen Typfehler, die Ansicht bleibt aus. Ein
Syntaxprüfer findet das nie — die Syntax ist gültig. Aufgefallen ist es erst, als ich
die App im Browser durchgeklickt habe. Seit 1.1.0 war damit jede Serie auf dem
Fernseher unerreichbar.
Was bewusst nicht drin ist
- 36 Sprachen wie im Desktop-Player: die Sprache steht im Gerät, nicht in der App. Auf einem Fernseher wäre das nur Ballast.
- Aufnahme: das alte README behauptete sie, im Code gab es sie nie. Ohne beschreibbaren Speicher für Live-Mitschnitte baue ich das nicht vor. Timeshift läuft.
- Offline-Downloads: bleiben ein Hinweis. Der TV hat keinen Platz dafür.
Zum Nachprüfen: Die App ist reines HTML und läuft im Browser. Getestet habe ich sie mit Attrappen für Panel und Anbieter — sechs Sender, ein Raster mit achtzehn Sendungen, durchgeschalteter Puffer, Staffel-Schlange. Der Beweis ist aber erst die Installation auf dem Gerät.
Installation
webOS erlaubt keine Installation von außerhalb des Stores ohne Developer Mode:
- Am TV: Einstellungen → Allgemein → Über diesen Fernseher → Developer Mode einschalten
- Die App „Developer Mode" am TV mit dem LG-Konto anmelden
- Die
.ipküber die Dev-Mode-App installieren
Die vollständige Anleitung mit allen drei Installationswegen steht unter webos-install.
Datei: com.smartys.iptv_1.2.0_all.ipk · 404 KB
SHA256: c2b16c1435cc0d924a79ffa2ed4e7e4a491bd7803a8b51371f1772dacd139cc2