CoWatchingHandler

@PublicApi
interface CoWatchingHandler


Rappels fournis par l'application complémentaire pour gérer les mises à jour du visionnage à distance et interroger l'état des contenus multimédias locaux.

Résumé

Fonctions publiques

Unit

Applique une mise à jour de l'état de visionnage à plusieurs par un autre participant à la réunion.

Optional<QueriedCoWatchingState!>!

Récupère l'état actuel de l'activité de visionnage à plusieurs.

Fonctions publiques

onCoWatchingStateChanged

fun onCoWatchingStateChanged(state: CoWatchingState!): Unit

Applique une mise à jour de l'état de visionnage à plusieurs par un autre participant à la réunion.

Remarque:Cet appel n'est pas effectué en réponse à des modifications locales.

Exemple d'implémentation:

// 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();
}
Paramètres
state: CoWatchingState!

Le nouveau CoWatchingState à appliquer au lecteur

onStateQuery

fun onStateQuery(): Optional<QueriedCoWatchingState!>!

Récupère l'état actuel de l'activité de visionnage à plusieurs.

Cette valeur sera appelée régulièrement. Elle doit donc être écrite pour être performante (par exemple, < 100 ms).

Exemple d'implémentation:

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

Optional sur QueriedCoWatchingState décrivant l'état de visionnage à plusieurs. Une valeur Optional vide signifie qu'aucune activité de visionnage à plusieurs n'est en cours.