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: バッファリングが完了し、メディアの再生の準備が整ったときに呼び出します。