CoWatchingHandler

@PublicApi
interface CoWatchingHandler


Callbacks fornecidos pelo app de complemento para processar atualizações de co-assistência remota e consultar o estado da mídia local.

Resumo

Funções públicas

Unit

Aplica uma atualização do estado de "Assistir em grupo" de outro participante na reunião.

Optional<QueriedCoWatchingState!>!

Recupera o estado atual da atividade local de assistir em grupo.

Funções públicas

onCoWatchingStateChanged

fun onCoWatchingStateChanged(state: CoWatchingState!): Unit

Aplica uma atualização do estado de "Assistir em grupo" de outro participante na reunião.

Observação:ele não será chamado em resposta a alterações locais.

Exemplo de implementação:

// 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!

o novo CoWatchingState a ser aplicado ao player

onStateQuery

fun onStateQuery(): Optional<QueriedCoWatchingState!>!

Recupera o estado atual da atividade local de assistir em grupo.

Ele será chamado regularmente e precisa ser escrito para ter um bom desempenho (por exemplo, menos de 100 ms).

Exemplo de implementação:

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

Optional de QueriedCoWatchingState que descreve o estado atual de assistir em grupo. A coluna Optional vazia indica que não há atividade de assistir em grupo em andamento.