Costruire una barra di controllo migliorata per DVR

È possibile implementare una barra di controllo con supporto DVR per VOD e streaming live. Il supporto DVR include il concetto di una finestra ricercabile e il punto live del cliente.

  • Per VOD, la lunghezza della finestra ricercabile corrisponde alla durata dell’intera risorsa.

  • Per lo streaming dal vivo, la lunghezza della finestra DVR (ricercabile) è definita come l'intervallo di tempo che inizia dalla finestra di riproduzione dal vivo e termina al punto dal vivo del client.

    Il punto live del client viene calcolato sottraendo la lunghezza del buffered dall'estremità della finestra live. La durata di destinazione è un valore maggiore o uguale alla durata massima di un frammento nel manifesto.

    Il valore predefinito è 10000 ms.

    La barra di controllo per la riproduzione in diretta supporta il DVR posizionando prima il pollice nel punto di attivazione del client all'avvio della riproduzione e visualizzando una regione che contrassegna l'area in cui la ricerca non è consentita.

  1. Per implementare una barra di controllo con supporto DVR, segui i passaggi per visualizzare una barra di scorrimento ricerca, con alcune differenze minori:

    • È possibile scegliere di implementare una barra di controllo mappata solo per l'intervallo ricercabile anziché per l'intervallo di riproduzione. Qualsiasi interazione dell’utente per la ricerca può essere considerata sicura nell’intervallo ricercabile.

    • È possibile scegliere di implementare una barra di controllo mappata per l'intervallo di riproduzione, ma che visualizza anche l'intervallo ricercabile.

      Per una barra di controllo:

    1. Aggiungi una sovrapposizione alla barra di controllo che rappresenta l’intervallo di riproduzione.

    2. Quando l'utente inizia a cercare, controlla se la posizione di ricerca desiderata si trova nell'intervallo ricercabile utilizzando MediaPlayer.getSeekableRange.

      Ad esempio:

      TimeRange seekableRange = _mediaPlayer.getSeekableRange();
      if (seekableRange.contains(desiredSeekPosition)) {
          _mediaPlayer.seek(desiredPosition);
      }
      

      Puoi anche scegliere di cercare il punto attivo del client utilizzando la costante MediaPlayer.LIVE_POINT .

      mediaPlayer.seek(MediaPlayer.LIVE_POINT);
      

In questa pagina