Warteschlange

Das Cast-Framework bietet Warteschlangen-APIs, mit denen Listen von Inhaltselementen wie Video- oder Audiostreams erstellt werden können, die nacheinander auf dem Webempfänger wiedergegeben werden sollen. Die Warteschlange der Inhaltselemente kann unter anderem bearbeitet, neu angeordnet, aktualisiert werden.

Das Web Receiver SDK verwaltet die Warteschlange und antwortet auf Vorgänge in der Warteschlange, solange in der Warteschlange mindestens ein Element aktiv ist (Wiedergabe oder Pause). Absender können der Sitzung beitreten und Elemente zur Warteschlange hinzufügen. Der Empfänger hält eine Sitzung für Warteschlangenelemente aufrecht, bis das letzte Element die Wiedergabe abgeschlossen hat, der Sender die Wiedergabe stoppt und die Sitzung beendet oder bis ein Sender eine neue Warteschlange auf dem Empfänger lädt. Der Empfänger bewahrt standardmäßig keine Informationen zu beendeten Warteschlangen auf. Sobald das letzte Element in der Warteschlange abgeschlossen ist, endet die Mediensitzung und die Warteschlange verschwindet.

Elemente in der Medienwarteschlange erstellen und laden

Unter iOS wird ein Element in der Medienwarteschlange im Cast-Framework als GCKMediaQueueItem-Instanz dargestellt. Wenn Sie ein Medienwarteschlangenelement mit adaptiven Inhalten erstellen, können Sie die Vorabladezeit so festlegen, dass der Player mit der Zwischenspeicherung des Warteschlangenelements beginnen kann, bevor das vorangehende Element in der Warteschlange abgespielt wird. Weitere Informationen zum Vorabladen finden Sie im Leitfaden zum Vorabladen von Web Receiver.

Wird das Attribut „autoplay“ auf „true“ gesetzt, kann der Webempfänger den Inhalt automatisch wiedergeben. So können Sie beispielsweise ein Builder-Muster verwenden, um ein Element in der Medienwarteschlange zu erstellen:

Swift
let builder = GCKMediaQueueItemBuilder.init()
builder.mediaInformation = mediaInformation
builder.autoplay = true
builder.preloadTime = 8.0
let newItem = builder.build()
Objective C
GCKMediaQueueItemBuilder *builder = [[GCKMediaQueueItemBuilder alloc] init];
builder.mediaInformation = self.mediaInformation;
builder.autoplay = YES;
builder.preloadTime = 8.0;
GCKMediaQueueItem *newItem = [builder build];

Laden Sie mithilfe der entsprechenden queueLoadItems-Methode der Klasse GCKRemoteMediaClient ein Array von Elementen aus der Medienwarteschlange in die Warteschlange.

Statusaktualisierung der Medienwarteschlange erhalten

Wenn der Webempfänger ein Element in der Warteschlange lädt, weist er diesem Element eine eindeutige ID zu, die für die Dauer der Sitzung (und die Warteschlangendauer) gültig ist. Der Status der Warteschlange zeigt an, welches Element gerade geladen ist (möglicherweise wird es nicht abgespielt), geladen oder vorab geladen. Sie können auch eine sortierte Liste aller Elemente in der Warteschlange abrufen. Die Klasse GCKMediaStatus stellt folgende Statusinformationen bereit:

  • Attribut preloadedItemID – ID des Elements, das derzeit vorab geladen ist (falls vorhanden).
  • Property loadingItemID – ID des Elements, das gerade geladen wird
  • Attribut currentItemID: ID des aktuellen Warteschlangenelements, falls vorhanden.
  • queueItemCount-Methode: gibt die Anzahl der Elemente in der Wiedergabewarteschlange zurück
  • Methode queueItemAtIndex: Gibt das Element im angegebenen Index in der Wiedergabewarteschlange zurück.

Verwenden Sie diese Mitglieder zusammen mit den anderen Mitgliedern des Medienstatus, um Ihre App über den Status der Warteschlange und der Elemente in der Warteschlange zu informieren. Zusätzlich zu den Medienstatusaktualisierungen vom Web Receiver können Sie -[remoteMediaClientDidUpdateQueue:] von GCKRemoteMediaClientListener implementieren, um Änderungen an der Warteschlange zu beobachten.

Warteschlange bearbeiten

Mit den Warteschlangenmethoden von GCKRemoteMediaClient können Sie mit den Elementen in der Warteschlange arbeiten. gibt es mehrere APIs. Damit können Sie ein Array von Elementen in eine neue Warteschlange laden, Elemente in eine vorhandene Warteschlange einfügen, die Attribute von Elementen in der Warteschlange aktualisieren, Elemente in der Warteschlange vor- und zurückspringen, die Attribute der Warteschlange festlegen (z. B. repeatMode ändern, mit dem das nächste Element ausgewählt wird), Elemente aus der Warteschlange entfernen und die Elemente in der Warteschlange neu anordnen.