Chromecast mit den nativen SDKs

In diesem Thema erfahren Sie, wie Sie Videos aus Ihren Anwendungen, die mit den nativen SDKs von Brightcove erstellt wurden, an ein mit Chromecast verbundenes Fernsehgerät übertragen können.

Einleitung

Google Chromecast ist ein Gerät, das Sie an den HDMI-Anschluss Ihres Fernsehgeräts anschließen. Mit Ihrem Smartphone oder Computer als Fernbedienung können Sie mit Chromecast auf Videoinhalte zugreifen. Das Chromecast-Plugin ermöglicht es einem Player, Videos von Ihrer Mobilgeräte-App mithilfe der nativen SDKs von Brightcove an das Chromecast-Gerät zu übertragen.

Das Plugin unterstützt alle Video Cloud-Videos oder externen Streams mit HLS oder DASH, einschließlich DRM-verschlüsselter Streams mit Widevine. Werbung wird durch die serverseitige Anzeigeneinfügung (SSAI) von Video Cloud unterstützt. Clientseitige Anzeigen und Wiedergabelisten werden nicht unterstützt.

Um das Plugin zu verwenden, führen Sie diese Schritte aus:

  1. Binden Sie das Chromecast-Plugin für das Native SDK für Android und/oder iOS ein (siehe Abschnitt Implementierung unten).
  2. Stellen Sie sicher, dass sich das Chromecast-Gerät im selben Netzwerk wie Ihr Gerät befindet, das das Video abspielt.
  3. Fange an, das Video abzuspielen.
  4. Klicken Sie auf die Schaltfläche „Besetzung“ und wählen Sie Ihr Chromecast-Gerät aus.

Chromecast-App-Komponenten

Die Software hinter Chromecast besteht aus folgenden Komponenten:

  • Sender-App: Dies ist jede Anwendung, die eine Cast-Sitzung initiieren und mit einem Empfänger kommunizieren kann. Die Absenderanwendung kann als „clientseitiger“ Teil des Chromecast-Ökosystems angesehen werden.

    Das Chromecast Plugin aktiviert die Sender-App in den Native SDKs. In diesem Thema erfahren Sie darüber.

  • Empfänger-App: Dies ist eine benutzerdefinierte Webanwendung, die im öffentlichen Internet gehostet wird und auf einem Chromecast-Gerät ausgeführt wird. Es übernimmt die Kommunikation zwischen der Absender-App und dem Empfängergerät. Es kann als eine einseitige HTML-App mit CSS- und JavaScript-Assets gedacht werden.

    Standardmäßig verwendet das Chromecast-Plugin die Brightcove Cast Receiver-App, die in unserem CDN gehostet wird. Die Empfänger-App ist eine Webanwendung, die während einer Cast-Sitzung auf den Chromecast geladen wird.

Unterstützte Chromecast-Geräte

Die folgenden Geräte werden unterstützt:

  • Chromecast (3. Generation)
  • Chromecast Ultra
  • Chromecast mit Google TV

So funktioniert es

Die aktuelle Implementierung (Plugin/Receiver Version 2.x) verwendet die CAF (Cast Application Framework) API.

Wenn das Chromecast-Empfänger-Plugin hinzugefügt wird, zeigt der Player eine Cast-Taste in der Player-Benutzeroberfläche an, wenn im lokalen Netzwerk ein Chromecast verfügbar ist.

Wenn diese Schaltfläche angeklickt oder angetippt wird, wird eine Casting-Sitzung mit dem aktuellen Video, das in den Player geladen ist, gestartet. So funktioniert es:

  1. Das Plugin sendet eine Reihe von Parametern an den Empfänger.
  2. Der Empfänger spiegelt den sendenden Player wider, indem er ihn von Brightcoves CDN lädt.
  3. Nach dem Laden lädt der empfängerseitige Player die Video-ID von der Playback-API, die zu Beginn der Cast-Sitzung gesendet wurde.
  4. Dann beginnt der empfängerseitige Spieler die Wiedergabe an der Abspielposition des sendenden Spielers.

Dieser Prozess ist für Nicht-Video-Cloud-Quellen identisch, es sei denn, es gibt keine Playback-API-Anfrage.

Analytik

Derzeit wird die Besetzungssitzung aus Analytics-Perspektive als eine völlig neue Wiedergabesitzung behandelt.

Aus UX-Perspektive sieht der Viewer, wie sein Stream auf dem Absendergerät pausiert und am Empfänger fortgesetzt wird.

Aus Datensicht wird, da unsere Metriken standardmäßig anonymisiert sind, als neuer Viewer protokolliert, der einen neuen Stream auf einem separaten Gerät startet. Das passiert tatsächlich.

Implementierung

Einzelheiten zur Implementierung finden Sie im Folgenden:

Benutzerdefinierte Daten

Die customData Schnittstelle bietet eine Methode, mit der Absender beliebige Daten an einen benutzerdefinierten Chromecast-Empfänger, z. B. die Empfänger-App von Brightcove, weitergeben können.

Für den Brightcove Player (Web) -Absender customData wird das vollständig vom Plugin verwaltet. Für die Integratoren gibt es nichts zu tun.

Für alle anderen Absender, z. B. das Native SDK für Android oder iOS, customData muss das vom Absender erstellt werden.

customData.accountId(erforderlich)

Typ: string

Bei der Übertragung über einen Webplayer geschieht dies automatisch. Alle anderen Absender (z.B. die Native SDKs) müssen dies explizit einstellen.

customData.analyticsParams

Typ: object

Bei dieser Eigenschaft sollte es sich um ein Objekt handeln, das zur Übergabe von Parametern an die Analyseimplementierung auf dem Empfänger für an die Datenerfassungs-API gesendete Beacons verwendet werden kann. Es unterstützt die folgenden Eigenschaften:

Eigentum Typ Beschreibung
analyticsParams.application string Ermöglicht die Einstellung einer Klartext-Anwendungs-ID. Dies ist nützlich für Anwendungen wie Engage.
analyticsParams.user string Ermöglicht die Einstellung einer Klartext-Benutzer-ID für Beacons, die an die Datenerfassungs-API gesendet werden. Dies ist nützlich für Funktionen wie Cross Device Resume (XDR).

customData.catalogParams

Typ: object

Dies sollte ein Katalog Parameter Objekte sein

Alle Werte, die an die Wiedergabe-API des Empfängers übergeben werden, müssen von diesem Objekt stammen.

customData.keySystems

Typ: object

Wenn Medien über ein Medieninformationsobjekt bereitgestellt werden, kann dies verwendet werden, um DRM-Einstellungen in einem Format bereitzustellen, das mit dem von der Wiedergabe-API zurückgegebenen identisch ist:

keySystems: {
  'com.widevine.alpha': {
    url: 'https://url/to/widevine/license'
  }
}

customData.playerUrl

Typ: string

Dies kann verwendet werden, um eine benutzerdefinierte Player-URL zum Laden bereitzustellen.

Beim Casting von einem Webplayer wird standardmäßig der Player des Senders gespiegelt. Dieses Verhalten kann durch die Übergabe "playerUrl": "default" von Optionen außer Kraft gesetzt werden (siehe oben). Dies ist für Tests nützlich.

Beim Casting von nativen SDKs wird auf den Standardplayer zurückgegriffen (der im Players Prod-Konto verfügbar ist).