CoWatchingHandler

@PublicApi
public interface CoWatchingHandler



Uzaktan birlikte izleme güncellemelerini işlemek ve yerel medyanın durumunu sorgulamak için eklenti uygulaması tarafından sağlanan geri çağırmalar.

Özet

Herkese açık yöntemler

abstract void

Toplantıdaki başka bir katılımcıya ait birlikte izleme durumu güncellemesini uygular.

abstract Optional<QueriedCoWatchingState>

Yerel birlikte izleme etkinliğinin mevcut durumunu alır.

Herkese açık yöntemler

onCoWatchingStateChanged

abstract void onCoWatchingStateChanged(CoWatchingState state)

Toplantıdaki başka bir katılımcıya ait birlikte izleme durumu güncellemesini uygular.

Not: Bu, yerel değişikliklere göre çağrılmaz.

Uygulama örneği:

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

oynatıcıya uygulanacak yeni CoWatchingState

onStateQuery

abstract Optional<QueriedCoWatchingStateonStateQuery()

Yerel birlikte izleme etkinliğinin mevcut durumunu alır.

Bu dize düzenli olarak çağrılacağından etkili olacak (ör. <100 ms) yazılmalıdır.

Uygulama örneği:

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

Optional/QueriedCoWatchingState birlikte izleme özelliğinin mevcut durumunu açıklıyor. Boş Optional, devam eden bir birlikte izleme etkinliği olmadığını gösterir.