CoWatchingHandler

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

Métodos públicos

abstract void

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

abstract Optional<QueriedCoWatchingState>

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

Métodos públicos

onCoWatchingStateChanged

abstract void onCoWatchingStateChanged(CoWatchingState state)

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

o novo CoWatchingState a ser aplicado ao player

onStateQuery

abstract Optional<QueriedCoWatchingStateonStateQuery()

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.