Implementar a API de co-watching

A API Co-Watching gerencia a experiência de reunião de vários participantes que assistem ou ouvem conteúdo no seu app.

Este guia explica como implementar a API Co-Watching.

Primeiros passos

Para usar a API Co-Watching, primeiro implante um complemento do Meet. Depois de concluir essas etapas, você poderá começar a usar a API Co-Watching no seu novo complemento.

Para usar a API Co-Watching, comece recebendo um AddonSession objeto, que serve como ponto de entrada para as co-atividades do Google Meet:

TypeScript

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

Substitua CLOUD_PROJECT_NUMBER pelo número do projeto na nuvem do Google Cloud.

Criar um cliente de co-watching

Para começar, crie um CoWatchingClient objeto a partir do seu AddonSession.

Para criar um CoWatchingCient, chame o createCoWatchingClient() método e forneça um CoWatchingDelegate objeto.

O CoWatchingDelegate é como a API Co-Watching atualiza seu app sempre que um novo estado está disponível. Quando o método onCoWatchingStateChanged() é chamado, espera-se que o app aplique imediatamente o novo estado.

O exemplo de código a seguir mostra como usar a API Co-Watching:

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
    },
  });

Substitua ACTIVITY_TITLE pelo título da mídia da sua atividade.

Gerenciar o estado atual

Quando os usuários realizam ações no seu aplicativo, espera-se que ele chame imediatamente os métodos de API fornecidos.

Só chame esses métodos em resposta a eventos significativos. Por exemplo, não é necessário chamá-los sempre que o app avança um vídeo em reprodução. O CoWatchingDelegate que você cria processa a atualização das posições de reprodução nessas circunstâncias.

É possível controlar o estado de co-watching usando estes métodos:

  • notifyBuffering(): chame quando o app de um usuário começar a armazenar em buffer devido a um switch de mídia anterior, busca de mídia ou congestionamento de rede.

  • notifyPauseState(): chame quando um usuário pausar ou retomar a mídia em reprodução.

  • notifyPlayoutRate(): chame quando um usuário atualizar a velocidade do vídeo para um novo valor (por exemplo, 1,25x).

  • notifyReady(): chame quando o buffer for concluído e a mídia estiver pronta para ser reproduzida.

  • notifySeekToTimestamp(): chame quando um usuário mudar explicitamente a posição de reprodução.

  • notifySwitchToMedia(): chame sempre que a mídia em reprodução mudar. Por exemplo, o usuário seleciona um novo vídeo ou a reprodução automática inicia o próximo vídeo.