Live-TV: jeder Weg wird bis zum Ende geprüft, bevor der Player ihn bekommt
Wieder HTTP 400, und wieder ohne Begründung. Der Grund, dass das dreimal passieren konnte: eine gebaute Adresse galt schon als Erfolg. Ob der Server sie überhaupt annimmt, stellte sich erst im Player heraus — und dort steht nur „HTTP 400 (unhandled)". Jetzt ruft die App die Adresse einmal selbst ab, ohne Plex-Kopfzeilen, genau so wie AVPlayer es tut. Nur was mit 200 antwortet, geht an den Player. Was nicht, steht mit dem Wortlaut des Servers in der Spur. Weil weder der Schlüssel für die Sitzung noch die anschließend umzurechnende Adresse für diesen Teil der Plex-Schnittstelle beschrieben sind, werden die Kombinationen der Reihe nach durchprobiert — Adresse der Sitzung, Adresse aus der Antwort, Adresse des Teils darin, je mit mediaIndex -1 und 0, höchstens acht Versuche. Antwortet keiner, wird der Transcoder wieder angehalten, statt für nichts weiterzurechnen. Die Spur steht in einem Blatt statt in einem Dialog: die Antwort des Servers ist mehrzeilig, und ein Dialog schneidet sie ab — dann stünde dort wieder nur, dass es nicht ging. Dazu ein Nebeneffekt, der beim zweiten Sender zugeschlagen hätte: der Player kannte die Sitzungskennung des Live-Stroms nicht und hat den Tuner beim Schließen nicht freigegeben. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
8dba05b4f9
commit
a9a45e685d
@@ -22,6 +22,8 @@ public actor PlexServer {
|
||||
/// Systemplayer abruft, müssen die Kennung selbst tragen — AVPlayer
|
||||
/// schickt keine Kopfzeilen mit.
|
||||
nonisolated let identity: PlexClientIdentity
|
||||
/// Für Abrufe ohne Plex-Kopfzeilen — so, wie der Systemplayer sie macht.
|
||||
nonisolated let transport: any PlexTransport
|
||||
|
||||
public init?(
|
||||
resource: PlexResource,
|
||||
@@ -34,6 +36,7 @@ public actor PlexServer {
|
||||
self.connection = connection
|
||||
self.token = token
|
||||
self.identity = identity
|
||||
self.transport = transport
|
||||
self.client = PlexHTTPClient(
|
||||
baseURL: baseURL,
|
||||
identity: identity,
|
||||
|
||||
Reference in New Issue
Block a user