SSAI Plugin für das Native SDK für Android

In diesem Thema erfahren Sie etwas über wichtige Änderungen am Plugin für die serverseitige Anzeigenschaltung (SSAI) im Brightcove Native SDK für Android.

Überblick

Ab der Version 6.18.0 des Native SDK für Android gibt es einige wichtige Änderungen am SSAI-Plugin, die die Wiedergabe und das Suchverhalten verbessern, insbesondere bei pausierten Playern.

Wenn ein Nutzer früher vorwärts suchte und eine Anzeige überquerte, ersetzte die Anzeigensteuerung sofort die Videosteuerung. Dadurch war es dem Benutzer nicht möglich, weiter zu suchen. Der Player würde auch den Videoinhalt beibehalten, anstatt ihn durch den Werbeinhalt zu ersetzen.

Jetzt können Nutzer vorwärts und rückwärts suchen, ohne dass die Werbung abgespielt wird, bis das Video abgespielt wird und der Nutzer mit dem letzten Suchlauf eine Werbung überquert hat.

Anwendungsfall

Betrachten Sie den folgenden Anwendungsfall:

  1. Der Nutzer lädt ein Video mit einer oder mehreren Mid-Roll-Anzeigen in den Player und startet die Videowiedergabe.
  2. Vor einer Mid-Roll-Anzeige pausiert der Nutzer die Wiedergabe.
  3. Während der Player pausiert, sucht der Nutzer nach dem Mid-Roll-Ad-Marker.
  4. Während der Player noch pausiert, sucht der Nutzer über die Mid-Roll-Anzeigemarkierung zurück zum gerade gesehenen Inhalt.
  5. Nach dem Suchlauf stehen dem Benutzer die Steuerelemente des Players zur Verfügung. Wenn der Benutzer auf Play drückt, wird der Inhalt wie erwartet abgespielt.
  6. Wenn die Wiedergabe die Midroll-Anzeigenmarkierung erreicht, wird die Anzeige abgespielt und die Anzeigensteuerung angezeigt.
  7. Nach Beendigung der Midroll-Anzeige führt der Player die Suchaktion zum Suchziel aus, wo die Wiedergabe des Inhalts mit den Playerkontrollen fortgesetzt wird.

Voraussetzungen

Für diese Funktion werden die folgenden Anforderungen benötigt:

  • Natives Brightcove-SDK für Android 6.18.0 oder neuer

Plugin-Verhaltensänderungen

Die folgenden Klassen haben ein neues Verhalten:

SSAIComponent Klasse

Diese Klasse übergibt das BaseVideoView Objekt nun an die TimelineManager Klasse, wenn eine Referenz darauf erstellt wird.

Es wurde die Übergabe der Referenzen für den Videowiedergabecontroller und des Tickers an den SeekManager Zeitpunkt der Erstellung entfernt und stattdessen den Event-Emitter übergeben. Außerdem wird der Seek-Listener vom Timeline-Manager-Objekt auf diese neue SeekManager Referenz gesetzt.

Es hat auch verhindert, dass das SeekManager Objekt als Beobachter an die Ticker Klasse übergeben wurde.

LastAdSeekStrategy Klasse

Diese Klasse ist jetzt öffentlich.

NoAdSeekStrategy Klasse

Diese Klasse ist jetzt öffentlich.

SeekManager Klasse

Diese Klasse löst nicht mehr das Abspielen von Anzeigen aus. Diese Funktion wurde dorthin verschoben, TimelineManager wo sie sinnvoller ist.

Diese Klasse hat zuvor auf SEEK_TO Ereignisse gehört und alle Zuhörer, die diesen Kurs abonniert haben, benachrichtigt. Mit dieser Aktion wurde die neue absolute Zeitposition überschritten und außerdem ein neues SEEK_TO Ereignis ausgegeben, das die absolute Position und die relative Position enthielt. Gibt jetzt SeekManager kein neues Suchereignis mehr aus, benachrichtigt aber trotzdem alle Hörer über das erste Suchereignis.

Diese Klasse implementiert die nicht mehr TickerObserver Und SeekTask.Seekable Klassen und verarbeitet nicht die Ereignisse, die diese Klassen generieren.

Diese Klasse verarbeitet keine Skip Ad Ereignisse mehr.

Die Signatur des Konstruktors hat sich von

public SeekManager(VideoPlaybackController, Timeline, Ticker)

zu

public SeekManager(EventEmitter, Timeline)

TimelineManager Klasse

Diese Klasse steuert nun die Wiedergabe und das Überspringen von Anzeigen. Es ist abonniert, SeekManager um nach Veranstaltungen zu suchen. Sobald ein Suchereignis erkannt wird, prüft diese Klasse, ob eine Anzeige überschritten wurde. Wenn ja, wird die Anzeige abgespielt. Wenn nicht, wird der Abspielkopf im Videoinhalt neu positioniert und die absolute und relative Position aktualisiert.

Die Werbung wird abgespielt, sobald das Video abgespielt wird. Wenn das Video angehalten wird, werden keine Anzeigen abgespielt, die von Suchereignissen durchkreuzt werden. Dies bietet die Möglichkeit, viele Suchaktionen zu unterstützen. Wenn das Video abgespielt wird und eine Anzeige überquert wird, wird die Anzeige sofort abgespielt.

Wenn eine Anzeige angekreuzt wird, während das Video angehalten ist, TimelineManager wird die Abspielposition an der Position vor dem Abspielen der Anzeige wieder aufgenommen.

Der TimelineManager setzt die Wiedergabe an der vorherigen Position fort, wenn ein Ereignis zum Überspringen der Anzeige erkannt wird.

Die TimelineManager-Klasse wird jetzt erweitert AbstractComponent.

Um ein TimelineManager Objekt zu erstellen, müssen Sie eine BaseVideoView Instanz zusammen mit einer Timeline Instanz übergeben.

API-Änderungen

Bei den folgenden Klassen wurden API-Änderungen vorgenommen:

SeekTask Klasse

Diese Klasse wurde gelöscht, da ihre Hauptfunktionalität in die TimelineManager Klasse integriert wurde, wo sie sinnvoller ist.

SeekManager Klasse

Der Konstruktor SeekManager(VideoPlaybackController videoPlaybackController, Timeline timeline, Ticker ticker) wurde gelöscht, da er die VideoPlaybackController und die nicht mehr benötigt Ticker. Stattdessen erhält es jetzt das EventEmitter und das Timeline wie folgt:

SeekManager(EventEmitter eventEmitter, Timeline timeline)

TimelineManager Klasse

Der Konstruktor TimelineManager(@NonNull Timeline mTimeline) wurde wie folgt geändert:

TimelineManager(@NonNull BaseVideoView mBaseVideoView, @NonNull Timeline mTimeline)