È 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.
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:
Aggiungi una sovrapposizione alla barra di controllo che rappresenta l’intervallo di riproduzione.
Quando l’utente inizia a cercare, controlla se la posizione di ricerca desiderata si trova nell’intervallo ricercabile utilizzando MediaPlayer.seekableRange
proprietà.
Ad esempio:
var desiredPosition:Number = // TODO : choose a value
private function onStatusChange(event:MediaPlayerStatusChangeEvent):void {
switch(event.status) {
case MediaPlayerStatus.PREPARED:
_mediaPlayer.prepareToPlay(desiredPosition);
}
}
Puoi anche scegliere di cercare il punto attivo del cliente utilizzando MediaPlayer.LIVE_POINT
costante.
private function onSeekToLiveClick(event:MouseEvent):void {
_player.seek(DefaultMediaPlayer.LIVE_POINT);
}