CoWatchingHandler

@PublicApi
interface CoWatchingHandler


Обратные вызовы, предоставляемые дополнительным приложением, для обработки обновлений удаленного совместного просмотра и запроса состояния локального мультимедиа.

Краткое содержание

Общественные функции

Unit

Применяет обновление состояния совместного просмотра от другого участника собрания.

Optional < QueriedCoWatchingState !>!

Получает текущее состояние локальной активности совместного просмотра.

Общественные функции

onCoWatchingStateChanged

fun onCoWatchingStateChanged(state: CoWatchingState!): Unit

Применяет обновление состояния совместного просмотра от другого участника собрания.

Примечание. Это не будет вызываться в ответ на локальные изменения.

Пример реализации:

// 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();
}
Параметры
state: CoWatchingState !

новый CoWatchingState , который будет применен к игроку

onStateQuery

fun onStateQuery(): Optional<QueriedCoWatchingState!>!

Получает текущее состояние локальной активности совместного просмотра.

Он будет вызываться регулярно, поэтому его следует записать так, чтобы он был производительным (например, <100 мс).

Пример реализации:

QueriedCoWatchingState myCurrentPlaybackState = QueriedCoWatchingState
    .of(/* mediaPlayoutPosition= *{/} this.videoPlayer.videoTimestamp);
return Optional.of(myCurrentPlaybackState);
Возврат
Optional < QueriedCoWatchingState !>!

Optional для QueriedCoWatchingState , описывающего текущее состояние совместного просмотра. Пусто Optional означает, что совместного просмотра не происходит.