Segnalibri

Questa guida spiega come implementare l'aggiunta ai preferiti utilizzando l'SDK IMA DAI quando si utilizza l'inserimento di annunci dinamici (DAI) per gli stream video on demand (VOD). Questo presuppone che l'implementazione IMA DAI funzioni correttamente, come quella presentata in Inizia.

Che cos'è l'aggiunta ai preferiti?

L'aggiunta ai preferiti consente di salvare e tornare a un punto specifico nello stream di contenuti. Supponiamo che un utente guardi cinque minuti di contenuti esce dal video stream e poi vi torna. L'aggiunta di segnalibri salva la posizione dell'utente nello stream, in modo che quest'ultimo possa riprendere da dove interrotto, offrendo allo spettatore un'esperienza fluida.

L'inserimento di annunci dinamici nei segnalibri

Quando aggiungi uno stream DAI ai preferiti, devi registrare l'ID e l'ora dello streaming quando l'utente abbandona il video. Quando l'utente ritorna, richiedi di nuovo per avviare lo streaming e la ricerca fino al tempo risparmiato. Poiché ogni istanza della richiesta lo stream può includere interruzioni pubblicitarie di durata diversa semplicemente salvando lo stream tempo non funzionerà. Quello che vogliamo fare è continuare tempo dei contenuti.

Metodi di conversione in soccorso

L'SDK IMA DAI fornisce un paio di metodi per richiedere l'ora dei contenuti per un determinato tempo di streaming e la durata dello streaming per un determinato contenuti volta. Con questi metodi di conversione puoi memorizzare i preferiti tempo dei contenuti e poi cerca la durata dello streaming corrispondente tra la nuova istanza del flusso. Ecco l'approccio, incluso un link a un'app di esempio che mostra un'implementazione funzionante dei preferiti.

Salvataggio dei preferiti in corso...

Salva un preferito quando il player di contenuti è in pausa.

onPause() {
   var bookmarkTime = Math.floor(
   streamManager.contentTimeForStreamTime(videoElement.currentTime));
}

Caricamento preferiti in corso...

Carica il preferito quando richiedi di nuovo uno stream.

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);
}

App di esempio

Scarica l'app Sample per visualizzare un'implementazione dei segnalibri.