CoWatchingHandler

@PublicApi
public interface CoWatchingHandler



Callback yang disediakan oleh aplikasi add-on untuk menangani update menonton bersama dari jarak jauh dan untuk mengkueri status media lokal.

Ringkasan

Metode publik

abstract void

Menerapkan pembaruan status menonton bersama dari peserta lain dalam rapat.

abstract Optional<QueriedCoWatchingState>

Mengambil status saat ini dari aktivitas menonton bersama lokal.

Metode publik

onCoWatchingStateChanged

abstract void onCoWatchingStateChanged(CoWatchingState state)

Menerapkan pembaruan status menonton bersama dari peserta lain dalam rapat.

Catatan: Ini tidak akan dipanggil sebagai respons terhadap perubahan lokal.

Contoh penerapan:

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

CoWatchingState baru untuk diterapkan ke pemain

onStateQuery

abstract Optional<QueriedCoWatchingStateonStateQuery()

Mengambil status saat ini dari aktivitas menonton bersama lokal.

Ini akan dipanggil secara berkala sehingga harus ditulis agar berperforma tinggi (misalnya <100 md).

Contoh penerapan:

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

Optional dari QueriedCoWatchingState yang menjelaskan status menonton bersama saat ini. Optional kosong menunjukkan tidak ada aktivitas menonton bersama yang sedang berlangsung.