Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
L'API Co-Watching gère l'expérience de réunion de plusieurs participants qui regardent ou écoutent du contenu dans votre application.
Ce guide explique comment implémenter l'API Co-Watching.
Commencer
Pour utiliser l'API Co-Watching, vous devez d'abord déployer un module complémentaire Meet. Une fois ces étapes effectuées, vous pouvez commencer à utiliser l'API Co-Watching depuis votre nouveau module complémentaire.
Pour utiliser l'API Co-Watching, commencez par obtenir un objet AddonSession, qui sert de point d'entrée pour les activités de groupe Google Meet :
CoWatchingDelegate est la façon dont l'API Co-Watching met à jour votre application chaque fois qu'un nouvel état est disponible. Lorsque la méthode onCoWatchingStateChanged() est appelée, votre application doit appliquer immédiatement le nouvel état.
L'exemple de code suivant montre comment utiliser l'API Co-Watching :
TypeScript
constcoWatchingClient=awaitaddonSession.createCoWatchingClient({activityTitle:"ACTIVITY_TITLE",onCoWatchingStateQuery(){// This function should return the current state of your CoWatching activityreturngetMyApplicationCoWatchingState();},onCoWatchingStateChanged(coWatchingState:CoWatchingState){// This function should apply newState to your ongoing CoWatching activity},});
Remplacez ACTIVITY_TITLE par le titre du contenu multimédia de votre activité.
Gérer l'état actuel
Lorsque les utilisateurs effectuent une action dans votre application, celle-ci doit immédiatement appeler les méthodes d'API fournies.
Vous ne devez appeler ces méthodes qu'en réponse à des événements importants. Par exemple, vous n'avez pas besoin de les appeler chaque fois que votre application avance une vidéo en cours de lecture. Le CoWatchingDelegate que vous créez gère la mise à jour des positions de lecture dans ces circonstances.
Vous pouvez contrôler l'état du visionnage à plusieurs à l'aide des méthodes suivantes :
notifyBuffering() :
Appel lorsque l'application d'un utilisateur commence à mettre en mémoire tampon en raison d'une mise en mémoire tampon à la suite d'un changement de contenu multimédia, d'une recherche de contenu multimédia ou d'une congestion du réseau.
notifyPauseState() : appel lorsque l'utilisateur met en pause ou relance la lecture du contenu multimédia.
notifyPlayoutRate() :
Appelez cette méthode lorsqu'un utilisateur modifie la vitesse de lecture sur une nouvelle valeur (par exemple, 1,25x).
notifyReady() :
Appelez lorsque la mise en mémoire tampon est terminée et que le contenu multimédia est prêt à être lu.
notifySeekToTimestamp() : à appeler lorsqu'un utilisateur modifie explicitement la position de lecture.
notifySwitchToMedia() : appelez chaque fois que le contenu multimédia en cours de lecture change. Par exemple, l'utilisateur sélectionne une nouvelle vidéo ou la lecture automatique lance la vidéo suivante.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/29 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/08/29 (UTC)."],[],[],null,["# Implement the Co-Watching API\n\n| **Early Access Program:** This feature was only available in limited preview, through an Early Access Program. This program is now closed to new signups.\n\nThe Co-Watching API manages the meeting experience of multiple\nparticipants watching or listening to content in your app.\n\nThis guide explains how to implement the Co-Watching API.\n\nGet started\n-----------\n\nTo use the Co-Watching API, you first must [Deploy a\nMeet add-on](/workspace/meet/add-ons/guides/deploy-add-on). Once\nyou've completed those steps, you can start using the Co-Watching API\nfrom within your new add-on.\n\nTo use the Co-Watching API, start by getting an\n[`AddonSession`](/workspace/meet/add-ons/reference/websdk/addon_sdk.addonsession) object,\nwhich serves as the entry point for Google Meet co-activities: \n\n### TypeScript\n\n const session = await window.meet.addon.createAddonSession({\n cloudProjectNumber: \"\u003cvar translate=\"no\"\u003eCLOUD_PROJECT_NUMBER\u003c/var\u003e\",\n });\n\nReplace \u003cvar translate=\"no\"\u003eCLOUD_PROJECT_NUMBER\u003c/var\u003e with the project number of\nyour Google Cloud project.\n\nCreate a co-watching client\n---------------------------\n\nTo get started, create a\n[`CoWatchingClient`](/workspace/meet/add-ons/reference/websdk/live_sharing_sdk.cowatchingclient)\nobject from your `AddonSession`.\n\nTo create a `CoWatchingCient`, call the\n[`createCoWatchingClient()`](/workspace/meet/add-ons/reference/websdk/addon_sdk.addonsession.createcowatchingclient)\nmethod and provide a\n[`CoWatchingDelegate`](/workspace/meet/add-ons/reference/websdk/live_sharing_sdk.cowatchingdelegate)\nobject.\n\nThe `CoWatchingDelegate` is how the Co-Watching API updates your app\nwhenever it has a new state available. It's expected that, when the\n[`onCoWatchingStateChanged()`](/workspace/meet/add-ons/reference/websdk/live_sharing_sdk.cowatchingdelegate.oncowatchingstatechanged)\nmethod is called, your app immediately applies the new state.\n\nThe following code sample shows how to use the Co-Watching API: \n\n### TypeScript\n\n const coWatchingClient = await addonSession.createCoWatchingClient({\n activityTitle: \"\u003cvar translate=\"no\"\u003eACTIVITY_TITLE\u003c/var\u003e\",\n onCoWatchingStateQuery() {\n // This function should return the current state of your CoWatching activity\n return getMyApplicationCoWatchingState();\n },\n onCoWatchingStateChanged(coWatchingState: CoWatchingState) {\n // This function should apply newState to your ongoing CoWatching activity\n },\n });\n\nReplace \u003cvar translate=\"no\"\u003eACTIVITY_TITLE\u003c/var\u003e with your activity's media title.\n\nManage current state\n--------------------\n\nWhen users take action in your application, it's expected that your application\nimmediately calls the provided API methods.\n\nYou should only call these methods in response to significant events. For\nexample, you don't need to call them every time your app advances a playing\nvideo. The `CoWatchingDelegate` you create handles getting updated playout\npositions in these circumstances.\n\nYou can control the co-watching state using these methods:\n\n- [`notifyBuffering()`](/workspace/meet/add-ons/reference/websdk/live_sharing_sdk.cowatchingclient.notifybuffering):\n Call when a user's app starts buffering due to buffering from a prior media\n switch, media seek, or network congestion.\n\n- [`notifyPauseState()`](/workspace/meet/add-ons/reference/websdk/live_sharing_sdk.cowatchingclient.notifypausestate):\n Call when a user pauses or unpauses the playing media.\n\n- [`notifyPlayoutRate()`](/workspace/meet/add-ons/reference/websdk/live_sharing_sdk.cowatchingclient.notifyplayoutrate):\n Call when a user updates the playback speed to a new value (for example,\n 1.25x).\n\n- [`notifyReady()`](/workspace/meet/add-ons/reference/websdk/live_sharing_sdk.cowatchingclient.notifyready):\n Call when buffering completes and the media is now ready to be played.\n\n- [`notifySeekToTimestamp()`](/workspace/meet/add-ons/reference/websdk/live_sharing_sdk.cowatchingclient.notifyseektotimestamp):\n Call when a user explicitly changes the play out position.\n\n- [`notifySwitchToMedia()`](/workspace/meet/add-ons/reference/websdk/live_sharing_sdk.cowatchingclient.notifyswitchedtomedia):\n Call whenever the actively playing media changes. For example, the user\n selects a new video, or autoplay starts the next video."]]