CoWatching Handler

@PublicApi
public interface CoWatchingHandler



پاسخ‌های تماس ارائه شده توسط برنامه افزودنی برای مدیریت به‌روزرسانی‌های تماشای مشترک از راه دور و پرس و جو از وضعیت رسانه‌های محلی.

خلاصه

روش های عمومی

abstract void

یک به‌روزرسانی وضعیت تماشای مشترک را از یک شرکت‌کننده دیگر در جلسه اعمال می‌کند.

abstract Optional < QueriedCoWatchingState >

وضعیت فعلی فعالیت تماشای مشترک محلی را بازیابی می کند.

روش های عمومی

onCoWatchingStateChanged

abstract void onCoWatchingStateChanged(CoWatchingState state)

یک به‌روزرسانی وضعیت تماشای مشترک را از یک شرکت‌کننده دیگر در جلسه اعمال می‌کند.

توجه: این در پاسخ به تغییرات محلی فراخوانی نخواهد شد.

مثال پیاده سازی:

// 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();
}
مولفه های
CoWatchingState state

CoWatchingState جدید برای پخش کننده اعمال می شود

onStateQuery

abstract Optional<QueriedCoWatchingStateonStateQuery()

وضعیت فعلی فعالیت تماشای مشترک محلی را بازیابی می کند.

این به طور منظم فراخوانی می شود، بنابراین باید به گونه ای نوشته شود که عملکردی داشته باشد (مثلاً <100 میلی ثانیه).

مثال پیاده سازی:

QueriedCoWatchingState myCurrentPlaybackState = QueriedCoWatchingState
    .of(/* mediaPlayoutPosition= *{/} this.videoPlayer.videoTimestamp);
return Optional.of(myCurrentPlaybackState);
برمی گرداند
Optional < QueriedCoWatchingState >

Optional از QueriedCoWatchingState که وضعیت کنونی تماشای مشترک را توصیف می کند. Optional خالی نشان می دهد که هیچ فعالیت تماشای مشترکی در حال انجام نیست.