CoWatchingHandler

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

Métodos públicos

abstract void

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

abstract Optional<QueriedCoWatchingState>

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

Métodos públicos

onCoWatchingStateChanged

abstract void onCoWatchingStateChanged(CoWatchingState state)

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

la nueva CoWatchingState que se aplicará al reproductor

onStateQuery

abstract Optional<QueriedCoWatchingStateonStateQuery()

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.