CoWatchingHandler

@PublicApi
public 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

Metodi pubblici

abstract void

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

abstract Optional<QueriedCoWatchingState>

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

Metodi pubblici

onCoWatchingStateChanged

abstract void onCoWatchingStateChanged(CoWatchingState state)

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
CoWatchingState state

il nuovo CoWatchingState da applicare al player

onStateQuery

abstract Optional<QueriedCoWatchingStateonStateQuery()

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.