Co-Watching API を実装する

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

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

使ってみる

Co-Watching API を使用するには、まず Meet アドオンをデプロイする必要があります。これらの手順が完了したら、新しいアドオン内から Co-Watching API の使用を開始できます。

Co-Watching API を使用するには、まず AddonSession オブジェクトを取得します。これは、Google Meet の共同アクティビティのエントリ ポイントとして機能します。

TypeScript

const session = await window.meet.addon.createAddonSession({
    cloudProjectNumber: "CLOUD_PROJECT_NUMBER",
});

CLOUD_PROJECT_NUMBER は、Google Cloud プロジェクトのプロジェクト番号に置き換えます。

視聴の共同作成クライアントを作成する

まず、AddonSession から CoWatchingClient オブジェクトを作成します。

CoWatchingCient を作成するには、createCoWatchingClient() メソッドを呼び出して CoWatchingDelegate オブジェクトを指定します。

CoWatchingDelegate は、Co-Watching API が新しい状態が利用可能になったときにアプリを更新する方法です。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 は、このような状況で更新されたプレーアウト位置の取得を処理します。

次の方法で共同視聴の状態を制御できます。

  • notifyBuffering(): 以前のメディア切り替え、メディアシーク、ネットワーク輻輳によるバッファリングが原因でユーザーのアプリがバッファリングを開始したときに呼び出します。

  • notifyPauseState(): ユーザーが再生中のメディアを一時停止または一時停止解除したときに呼び出します。

  • notifyPlayoutRate(): ユーザーが再生速度を新しい値(1.25 倍など)に更新したときに呼び出します。

  • notifyReady(): バッファリングが完了し、メディアを再生できる状態になったときに呼び出します。

  • notifySeekToTimestamp(): ユーザーが明示的に再生位置を変更したときに呼び出します。

  • notifySwitchToMedia(): アクティブに再生中のメディアが変更されるたびに呼び出します。たとえば、ユーザーが新しい動画を選択した場合や、自動再生で次の動画が開始された場合です。