CoWatchingHandler

@PublicApi
interface CoWatchingHandler


קריאות חוזרות (callback) שניתנות על ידי האפליקציה של התוסף לטיפול בעדכוני צפייה משותפת מרחוק ולשליחת שאילתות לגבי מצב המדיה המקומית.

סיכום

תפקידים ציבוריים

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 ריק, המשמעות היא שלא מתבצעת פעילות של צפייה משותפת.