CoWatchingHandler

@PublicApi
interface CoWatchingHandler


Las devoluciones de llamada que proporciona la app del complemento para controlar las actualizaciones de visualización en compañía remota y consultar el estado del contenido multimedia local.

Resumen

Funciones públicas

Unit

Aplica una actualización de estado de visualización en compañía de otro participante de la reunión.

Optional<QueriedCoWatchingState!>!

Recupera el estado actual de la actividad local de visualización en compañía.

Funciones públicas

onCoWatchingStateChanged

fun onCoWatchingStateChanged(state: CoWatchingState!): Unit

Aplica una actualización de estado de visualización en compañía de otro participante de la reunión.

Nota: No se llamará a esto en respuesta a los cambios locales.

Ejemplo de implementación:

// 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();
}
Parámetros
state: CoWatchingState!

la nueva CoWatchingState que se aplicará al reproductor

onStateQuery

fun onStateQuery(): Optional<QueriedCoWatchingState!>!

Recupera el estado actual de la actividad local de visualización en compañía.

Se llamará a este método con regularidad, de modo que se debe escribir para que tenga un buen rendimiento (p.ej., menos de 100 ms).

Ejemplo de implementación:

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

Optional de QueriedCoWatchingState que describe el estado actual de visualización en compañía El valor de Optional vacío indica que no hay actividad de visualización en compañía en curso.