CoWatchingHandler

@PublicApi
interface CoWatchingHandler


外掛程式應用程式提供的回呼,可處理遠端共同觀看更新及查詢本機媒體的狀態。

摘要

公用函式

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!>!

QueriedCoWatchingStateOptional,說明目前的共同觀看狀態。如果 Optional 為空白,表示沒有正在進行的共同觀看活動。