Co-Watching API を実装する

Google Meet Live Sharing Co-Watching API は、アプリ内のコンテンツを視聴する複数の参加者の会議エクスペリエンスを管理します。

このガイドでは、Co-Watching API の実装方法について説明します。

CoWatchingClient を作成する

まず、スタートガイドで作成した AddonSession から createCoWatchingClient を作成します。

CoWatchingCient を作成するには、AddonSession.createCoWatchingClient メソッドを呼び出して、CoWatchingDelegate を指定します。

CoWatchingDelegate は、新しい状態が利用可能になったときに Co-Watching API がアプリケーションを更新する方法です。CoWatchingDelegate.onCoWatchingStateChanged メソッドが呼び出されたとき、アプリはすぐに新しい状態を適用することが想定されています。

次のコードサンプルは、Co-Watching API の使用方法を示しています。

TypeScript

 const coWatchingClient = await addonSession.createCoWatchingClient({
    activityTitle: "ACTIVITY_TITLE",
    onCoWatchingStateQuery() {
      // This function should return the current state of your CoWatching activity
      return getMyApplicationCoWatchingState();
    },
    onCoWatchingStateChanged(coWatchingState: CoWatchingState) {
      // This function should apply newState to your ongoing CoWatching activity
    },
  });

ACTIVITY_TITLE は、アクティビティのメディア タイトルに置き換えます。

現在の状態を管理する

ユーザーがアプリでアクションを行ったら、指定された API メソッドをアプリが直ちに呼び出すことが想定されています。

これらのメソッドは、重要なイベントが発生した場合にのみ呼び出す必要があります。たとえば、アプリが再生中の動画を進めるたびに呼び出す必要はありません。上記で作成した CoWatchingDelegate は、このような状況で更新されたプレイアウト位置の取得を処理します。

次のメソッドを使用して、同時視聴の状態を制御できます。

  • CoWatchingClient.notifySwitchToMedia: 再生中のメディアが変更されるたびに呼び出されます。たとえば、ユーザーが新しい動画を選択したり、次の動画を自動再生したりしたときなどです。
  • CoWatchingClient.notifyPauseState: 再生中のメディアをユーザーが一時停止または一時停止解除したときに呼び出されます。
  • CoWatchingClient.notifySeekToTimestamp: ユーザーが再生位置を明示的に変更したときに呼び出されます。
  • CoWatchingClient.notifyPlayoutRate: ユーザーが再生速度を新しい値(1.25 倍など)に更新したときに呼び出されます。
  • CoWatchingClient.notifyBuffering: 前のメディア スイッチからのバッファリング、メディアシーク、ネットワークの輻輳により、ユーザーのアプリがバッファリングを開始したときに呼び出されます。
  • CoWatchingClient.notifyReady: バッファリングが完了し、メディアを再生できる状態になったときに呼び出されます。