CoWatchingHandler

@PublicApi
public interface CoWatchingHandler



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

סיכום

שיטות ציבוריות

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