CoWatchingHandler

@PublicApi
interface CoWatchingHandler


Callback forniti dall'app del componente aggiuntivo per gestire gli aggiornamenti relativi alla visione condivisa da remoto e per eseguire query sullo stato dei contenuti multimediali locali.

Riepilogo

Funzioni pubbliche

Unit

Applica un aggiornamento dello stato di visualizzazione condivisa da un altro partecipante alla riunione.

Optional<QueriedCoWatchingState!>!

Recupera lo stato attuale dell'attività di visualizzazione condivisa locale.

Funzioni pubbliche

onCoWatchingStateChanged

fun onCoWatchingStateChanged(state: CoWatchingState!): Unit

Applica un aggiornamento dello stato di visualizzazione condivisa da un altro partecipante alla riunione.

Nota:non verrà richiamata in risposta a modifiche locali.

Esempio di implementazione:

// Handle transition to new video.
if (!newState.mediaId().equals(this.videoPlayer.videoUrl)) {
  this.videoPlayer.loadVideo(newState.mediaId());
}

// Only adjust the local video playout if it is sufficiently diverged from the timestamp in the
// applied update.
if (newState
        .mediaPlayoutPosition()
        .minus(this.videoPlayer.videoTimestamp)
        .compareTo(Duration.ofMillis(500))
    > 0) {
  this.videoPlayer.seek(newState.mediaPlayoutPosition());
}

// Update pause state if necessary.
if (newState.playbackState().equals(PLAY) && this.videoPlayer.isPaused) {
  this.videoPlayer.unpause();
} else if (newState.playbackState().equals(PAUSE) && !this.videoPlayer.isPaused) {
  this.videoPlayer.pause();
}
Parametri
state: CoWatchingState!

il nuovo CoWatchingState da applicare al player

onStateQuery

fun onStateQuery(): Optional<QueriedCoWatchingState!>!

Recupera lo stato attuale dell'attività di visualizzazione condivisa locale.

Verrà chiamata regolarmente, quindi deve essere scritta per garantire prestazioni elevate (ad es. <100 ms).

Esempio di implementazione:

QueriedCoWatchingState myCurrentPlaybackState = QueriedCoWatchingState
    .of(/* mediaPlayoutPosition= *{/} this.videoPlayer.videoTimestamp);
return Optional.of(myCurrentPlaybackState);
Ritorni
Optional<QueriedCoWatchingState!>!

Optional di QueriedCoWatchingState che descrive l'attuale stato di visualizzazione condivisa. Il campo Optional vuoto indica che non è in corso alcuna attività di visualizzazione condivisa.