CoWatchingHandler

@PublicApi
public interface CoWatchingHandler



Wywołania zwrotne dostarczane przez aplikację dodatku w celu obsługi aktualizacji zdalnego wspólnego oglądania i zapytania o stan mediów lokalnych.

Podsumowanie

Metody publiczne

abstract void

Stosuje aktualizację stanu wspólnego oglądania od innego uczestnika spotkania.

abstract Optional<QueriedCoWatchingState>

Pobiera bieżący stan lokalnego wspólnego oglądania.

Metody publiczne

onCoWatchingStateChanged

abstract void onCoWatchingStateChanged(CoWatchingState state)

Stosuje aktualizację stanu wspólnego oglądania od innego uczestnika spotkania.

Uwaga: ta funkcja nie będzie wywoływana w odpowiedzi na zmiany lokalne.

Przykład implementacji:

// 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();
}
Parametry
CoWatchingState state

nowy CoWatchingState do zastosowania do odtwarzacza

onStateQuery

abstract Optional<QueriedCoWatchingStateonStateQuery()

Pobiera bieżący stan lokalnego wspólnego oglądania.

Będzie ono wywoływane regularnie, więc powinno być zapisywane w sposób zapewniający odpowiednią wydajność (np. <100 ms).

Przykład implementacji:

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

Optional z QueriedCoWatchingState zawiera opis obecnego stanu wspólnego oglądania. Puste pole Optional oznacza brak trwającego wspólnego oglądania.