In dieser Anleitung wird beschrieben, wie du Lesezeichen mit dem IMA DAI SDK implementierst, wenn du die dynamische Anzeigenbereitstellung für VOD-Streams verwendest. Dabei wird von einer funktionierenden IMA-DAI-Implementierung ausgegangen, wie sie im Abschnitt Einstieg beschrieben wurde.
Was ist das Merken von Lesezeichen?
Mit Lesezeichen können Sie eine bestimmte Stelle im Contentstream speichern und dorthin zurückkehren. Ein Beispiel: Ein Nutzer sieht sich den Content fünf Minuten lang an, schließt den Videostream und kehrt dann dorthin zurück. Mithilfe der Lesezeichenfunktion wird die Stelle gespeichert, an der der Nutzer den Stream geschlossen hat, damit er dorthin zurückkehren und fortfahren kann. Mit dieser Funktion bieten Sie dem Betrachter also eine nahtlose Erfahrung.
Funktionsweise von Lesezeichen für die dynamische Anzeigenbereitstellung
Wenn du einen DAI-Stream als Lesezeichen markierst, musst du die Stream-ID und die Uhrzeit aufzeichnen, zu der der Nutzer das Video verlässt. Wenn der Nutzer zurückkehrt, fordere den Stream noch einmal an und springe zum gespeicherten Zeitpunkt. Da jede Instanz des angeforderten Streams Werbeunterbrechungen unterschiedlicher Dauer haben kann, funktioniert es nicht, einfach die Streamzeit zu speichern. Du möchtest aber eigentlich von derselben Zeit aus fortfahren.
Conversion-Methoden als Retter in der Not
Das IMA DAI SDK bietet zwei Methoden, um die Inhaltszeit für eine bestimmte Streamzeit und die Streamzeit für eine bestimmte Inhaltszeit anzufordern. Mit diesen Konvertierungsmethoden kannst du die gemerkte Inhaltszeit speichern und dann in der neuen Instanz des Streams zur entsprechenden Streamzeit springen. Hier ist der Ansatz, einschließlich eines Links zu einer Beispiel-App, die eine funktionierende Lesezeichenimplementierung zeigt.
Lesezeichen für Werbestreams speichern und laden
Lesezeichen speichern, wenn der Inhaltsplayer pausiert ist
onPause() {
var bookmarkTime = Math.floor(
streamManager.contentTimeForStreamTime(videoElement.currentTime));
}
Lesezeichen werden geladen
Lade das Lesezeichen, wenn du einen Stream noch einmal anforderst.
function loadUrl(url) {
hls.on(Hls.Events.MANIFEST_PARSED, () => {
var startTime = 0;
if (bookmarkTime) {
var startTime = streamManager.streamTimeForContentTime(bookmarkTime);
// Seeking on load triggers the onSeekEnd event, so treat this seek as
// if it's snapback. Without this, resuming at a bookmark kicks you
// back to the ad before the bookmark.
isSnapback = true;
}
hls.startLoad(startTime);
videoElement.addEventListener('loadedmetadata', () => { videoElement.play(); });
});
hls.loadSource(url);
hls.attachMedia(videoElement);
}
Beispiel-App
Laden Sie die Beispielanwendung herunter, um sich eine Bookmark-Implementierung anzusehen.