L'objet Session renvoyé par la OT.initSession() Cette méthode permet d'accéder à une grande partie des fonctionnalités de la Video API de Vonage.

Propriétés

Nom Type Description
capabilities Capacités A Capacités objet contenant des informations sur les capacités du client. Toutes les propriétés de l' capabilities Les objets ne sont pas définis tant que vous ne vous êtes pas connecté à une session et que le gestionnaire de fin d'exécution pour le Session.connect() La méthode a été appelée sans erreur.
connection Connexion Les Connexion objet pour cette session. La propriété « connection » n'est disponible qu'une fois que le gestionnaire de fin d'exécution de la Session.connect() La méthode a été appelée avec succès. Consultez la Session.connect() et la méthode Connexion classe.
sessionId Chaîne L'identifiant de cette session. Vous transmettez cette valeur à la OT.initSession() méthode lors de la création de l'objet Session. (Remarque : un objet Session n'est pas connecté au serveur de la Video API Vonage tant que vous n'avez pas appelé la méthode connect() de l'objet et que son gestionnaire de fin d'exécution n'a pas été appelé sans erreur. Voir la OT.initSession() et le Session.connect() méthodes.) Pour plus d'informations sur les sessions et les identifiants de session, consultez Création d'une session.

Méthodes

Nom Description
addEventListener(type, listener, context) Obsolète.
connect(token, completionHandler) Se connecte à une session de la Video API Vonage.
disableForceMute() → {Promise} Désactive l'état de sourdine actif de la session.
disconnect() → {Promise.<void>} Se déconnecte de la session de la Video API Vonage.
forceDisconnect(connection, completionHandler) → {Promise.<void>} Force la connexion à distance à se déconnecter de la session.
forceMuteAll(excludedStreams) → {Promise} Oblige tous les diffuseurs de la session (à l'exception de ceux qui diffusent des flux exclus) à couper le son.
forceMuteStream(stream) → {Promise} Force l'éditeur d'un flux spécifié à couper le son.
forceUnpublish(stream, completionHandler) → {Promise.<void>} Force l'éditeur du flux spécifié à cesser la publication de ce flux.
getPublisherForStream(stream) → {Publisher} Renvoie l'objet Publisher local associé à un flux donné.
getSubscribersForStream(stream) → {Array} Renvoie un tableau d'objets « Subscriber » locaux pour un flux donné.
off(type, handler, context) → {Object} Supprime un ou plusieurs gestionnaires d'événements.
on(type, handler, context) → {EventDispatcher} Ajoute une fonction de gestion d'événements pour un ou plusieurs événements.
once(type, handler, context) → {Object} Ajoute une fonction de gestion d'événements pour un ou plusieurs événements.
publish(publisher, completionHandler) Les publish() La méthode commence à diffuser un flux audio-vidéo vers la session.
removeEventListener(type, listener, context) Obsolète.
setEncryptionSecret(secret) → {Promise} Définit la clé de chiffrement pour une session dans laquelle le chiffrement de bout en bout est activé.
setIceConfig(newIceConfig) Définit la configuration ICE pour toutes les connexions d'une session.
signal(signal, completionHandler) → {Promise.<void>} Envoie un signal à chaque client ou à un client spécifique de la session.
subscribe(stream, targetElement, properties, completionHandler) → {Subscriber} S'abonne à un flux accessible à la session.
unpublish(publisher) Cesse de diffuser le flux audio-vidéo de l'éditeur spécifié vers la session.
unsubscribe(subscriber) Met fin à l'abonnement à un flux dans la session.

addEventListener(type, listener, context)

Paramètres :
Nom Type Description
type Chaîne La chaîne de caractères identifiant le type d'événement.
listener fonction La fonction à appeler lorsque l'objet déclenche l'événement.
context Objet (Facultatif) Définit la valeur de this dans la fonction de gestion des événements.

Déclassé — utilisation on() ou une fois() au lieu de cela.

Cette méthode permet d'enregistrer une méthode en tant qu'écouteur d'événement pour un événement spécifique.

Si aucun gestionnaire n'est enregistré pour un événement, celui-ci est ignoré localement. Si la fonction d'écoute d'événement n'existe pas, l'événement est ignoré localement.

Lance une exception si le listener Le nom n'est pas valide.

Voir : : - on() - une fois() - Evénements

connect(token, completionHandler)

Se connecte à une session de la Video API Vonage.

Une fois la connexion établie, le gestionnaire de fin d'exécution (le deuxième paramètre de la méthode) est appelé sans qu'aucun objet d'erreur ne lui soit transmis. (En cas d'erreur lors de la connexion, le gestionnaire de fin d'exécution est appelé avec un objet d'erreur.) Assurez-vous que la connexion à la session a bien été établie avant d'appeler d'autres méthodes de l'objet Session.

L'objet Session envoie un connectionCreated événement déclenché lorsqu'un client (y compris le vôtre) se connecte à la session.

Exemple

Le code suivant initialise une session et configure un écouteur d'événement pour le moment où la session se connecte :

 var apiKey = ""; // Replace with your API key. See https://tokbox.com/account
 var sessionID = ""; // Replace with your own session ID.
                     // See https://tokbox.com/developer/guides/create-session/.
 var token = ""; // Replace with a generated token.
                 // See https://tokbox.com/developer/guides/create-token/.

 var session = OT.initSession(apiKey, sessionID);
 session.connect(token, function(error) {
   if (error) {
     console.log(error.message);
   } else {
     // You have connected to the session. You could publish a stream now.
   }
 });
Événements déclenchés :

exception (ExceptionEvent) — Envoyé par la classe OT locale en cas d'erreur.

connectionCreated (ConnectionEvent) — Diffusé par l'objet « Session » à tous les clients connectés à la session.

sessionConnected (SessionConnectEvent) — Appelé localement par l'objet Session lorsque la connexion est établie. Cependant, vous pouvez passer une fonction de gestion de fin d'exécution en tant que deuxième paramètre de la connect() et utiliser cette fonction à la place d'un écouteur pour le sessionConnected événement.

Paramètres :
Nom Type Description
token Chaîne Le jeton de session. Vous générez un jeton de session à l'aide de notre bibliothèques côté serveur ou chez vous Compte Video API de Vonage page. Pour plus d'informations, consultez Création d'un jeton de connexion.
completionHandler fonction (Facultatif) Une fonction à appeler lorsque l'appel à la connect() la méthode aboutit ou échoue. Cette fonction prend un paramètre — error (voir le Erreur objet). En cas de réussite, la completionHandler Aucun argument n'est transmis à la fonction. En cas d'erreur, la fonction reçoit un error paramètre d'objet (voir la section Erreur objet). Le error L'objet possède deux propriétés : code (un nombre entier) et message (une chaîne de caractères), qui identifie la cause de l'échec. Le code suivant ajoute un completionHandler lors de l'appel du connect() méthode : session.connect(token, function (error) { if (error) { console.log(error.message); } else { console.log("Connected to session."); } }); Notez qu’une fois la connexion à la session établie, l’objet Session déclenche un sessionConnected événement, en plus d'appeler la fonction completionHandler. L'objet SessionConnectEvent, qui définit le sessionConnected événement, comprend connections et streams propriétés, qui répertorient les connexions et les flux de la session lorsque vous vous connectez.

Voir : : - SessionConnectEvent

disableForceMute() → {Promise}

Désactive l'état de sourdine actif de la session. Une fois cette méthode appelée, les nouveaux flux publiés sur la session ne seront plus en sourdine.

Une fois que vous aurez appelé le Session.forceMuteAll() méthode (ou lorsqu'un modérateur d'un autre client lance une commande pour couper le son de tous les flux), tous les flux publiés après cette commande de modération sont publiés avec le son coupé. Appelez la disableForceMute() méthode permettant de désactiver la mise en sourdine d'une session (afin que les nouveaux flux publiés ne soient pas automatiquement mis en sourdine).

L'appel de cette méthode entraîne l'envoi d'un message par l'objet Session de chaque client connecté, muteForced avec l'événement active indicateur défini sur false.

Vérifier le capabilities.canForceMute propriété de l'objet Session pour vérifier si vous pouvez appeler cette fonction sans problème. Cette fonctionnalité est réservée aux clients qui se sont connectés à l'aide d'un jeton auquel le rôle de modérateur a été attribué (voir la Création de jetons (documentation).

Voir : : - Session.capabilities - Session.forceMuteAll() - Événement « muteForced »

Retours :

Une promesse qui renvoie une valeur nulle lorsque l'opération s'achève avec succès. La promesse est rejetée en cas d'erreur. La name La propriété de l'objet Error prend l'une des valeurs suivantes, en fonction du type d'erreur :

  • 'OT_NOT_CONNECTED' — Le client n'est pas connecté à la session.
  • 'OT_PERMISSION_DENIED' — Le rôle de l'utilisateur ne comprend pas les autorisations nécessaires pour forcer d'autres utilisateurs à se mettre en mode silencieux. Vous définissez le rôle d'un utilisateur lorsque vous créez son jeton d'utilisateur (voir la Présentation de la création de jetons). Vous transmettez la chaîne de caractères du jeton en tant que paramètre de la fonction connect() méthode de l'objet Session.
  • 'OT_UNEXPECTED_SERVER_RESPONSE' — En cas d'erreur interne du serveur.

disconnect() → {Promise.<void>}

Se déconnecte de la session de la Video API Vonage.

Appeler le disconnect() Cette méthode met fin à votre connexion à la session. Lors de la clôture de votre connexion, elle interrompt également la diffusion de tout flux que vous étiez en train de diffuser.

Distribution des objets de session sur les clients distants streamDestroyed événements pour tout flux que vous publiez. L'objet Session déclenche un sessionDisconnected événement au niveau local. Les objets Session sur les clients distants déclenchent connectionDestroyed événements, afin d'informer les autres participants que vous avez quitté la session. Le SessionDisconnectEvent et Événement de flux objets qui définissent le sessionDisconnect et connectionDestroyed Chaque événement dispose d'un reason propriété. Le reason Cette propriété permet au développeur de déterminer si la connexion est interrompue volontairement et si des flux sont détruits à la suite de la destruction volontaire de la connexion sous-jacente.

Si la session n'est pas actuellement connectée, l'appel de cette méthode entraîne l'enregistrement d'un avertissement dans le journal. Voir OT.setLogLevel().

Remarque : Si vous comptez réutiliser un objet Publisher pour publier successivement dans différentes sessions (ou dans la même session), ajoutez un écouteur d'événement pour le streamDestroyed événement déclenché par l'objet Publisher (lorsqu'il cesse de publier). Dans le gestionnaire d'événements, appelez la méthode preventDefault() méthode de l'objet « event » afin d'empêcher que la vidéo de l'éditeur ne soit supprimée de la page.

Événements déclenchés :

sessionDisconnected (SessionDisconnectEvent) — Envoyé localement lorsque la connexion est interrompue.

connectionDestroyed (ConnectionEvent) — Envoyé sur d'autres clients, en même temps que le streamDestroyed événement (le cas échéant).

streamDestroyed (Événement de flux) — Envoyé sur d'autres clients en cas de perte de flux suite à la déconnexion de la session.

Retours :

Une promesse qui sera résolue lorsque l'événement `sessionDisconnected` sera déclenché

forceDisconnect(connexion, gestionnaire de fin) → {Promise.<void>}

Force la connexion à distance à se déconnecter de la session.

Les forceDisconnect() Cette méthode est généralement utilisée comme outil de modération pour exclure des utilisateurs d'une session en cours.

Lorsqu'une connexion est interrompue à l'aide de la commande forceDisconnect(), sessionDisconnected, connectionDestroyed et streamDestroyed Les événements sont déclenchés de la même manière que s’ils avaient été générés si la connexion s’était interrompue d’elle-même à l’aide de la disconnect() méthode. Cependant, la reason d'un ConnectionEvent ou Événement de flux L'objet spécifie "forceDisconnected" comme cause de la rupture de la connexion et du ou des flux.

Bien que vous puissiez utiliser le forceDisconnect() méthode permettant de mettre fin à votre propre connexion, en appelant la disconnect() Cette méthode est plus simple.

L'objet OT déclenche un exception même si le rôle de l'utilisateur ne dispose pas des autorisations nécessaires pour forcer d'autres utilisateurs à se déconnecter. Vous définissez le rôle d'un utilisateur lors de la création de son jeton d'utilisateur (voir la section Présentation de la création de jetons). Voir ExceptionEvent et OT.on().

L'application génère une erreur si la session n'est pas connectée.

Événements déclenchés :

connectionDestroyed (ConnectionEvent) — Sur les clients autres que ceux dont la connexion a été interrompue.

exception (ExceptionEvent) — Le rôle de l'utilisateur ne lui permet pas de forcer d'autres utilisateurs à se déconnecter (event.code = 1530), ou bien le flux spécifié ne diffuse pas vers la session (event.code = 1535).

sessionDisconnected (SessionDisconnectEvent) — Sur le client dont la connexion a été interrompue.

streamDestroyed (Événement de flux) — Si les flux sont interrompus à la suite de la fin de la connexion.

Paramètres :
Nom Type Description
connection Connexion La connexion à déconnecter de la session. Cette valeur peut être soit un Connexion objet ou un identifiant de connexion (qui peut être obtenu à partir du connectionId propriété de l'objet Connection).
completionHandler fonction (Facultatif) Une fonction à appeler lorsque l'appel à la forceDiscononnect() la méthode aboutit ou échoue. Cette fonction prend un paramètre — error. En cas de réussite, le completionHandler Aucun argument n'est transmis à la fonction. En cas d'erreur, la fonction reçoit un error paramètre d'objet. Le error objet, défini par le Erreur La classe dispose de deux propriétés : code (un nombre entier) et message (une chaîne de caractères), qui identifie la cause de l'échec. L'appel de forceDisconnect() échoue si le rôle attribué à votre jeton n'est pas « modérateur » ; dans ce cas, le error.name est fixée à "OT_PERMISSION_DENIED". Le code suivant ajoute un completionHandler lors de l'appel du forceDisconnect() méthode : session.forceDisconnect(connection, function (error) { if (error) { console.log(error); } else { console.log("Connection forced to disconnect: " + connection.id); } });
Retours :

Une promesse qui se résout au moment où la déconnexion se produit

forceMuteAll(excludedStreams) → {Promise}

Oblige tous les diffuseurs de la session (à l'exception de ceux qui diffusent des flux exclus) à couper le son.

Un flux publié par le modérateur appelant le forceMuteAll() La méthode est mise en sourdine avec les autres flux de la session, à moins que vous n'ajoutiez le ou les flux du modérateur à le tableau des flux exclus.

Si vous ne tenez pas compte de la excludedStreams paramètre, tous les flux de la session (y compris ceux du modérateur) cesseront de diffuser du son :

session.forceMuteAll();

De même, tous les flux publiés après l'appel à la fonction forceMuteAll() méthode sont publiées avec le son désactivé. Vous pouvez désactiver la mise en sourdine d'une session en appelant la disableForceMute() méthode de l'objet Session.

session.disableForceMute();

Après avoir appelé le Session.disableForceMute() Grâce à cette méthode, les nouveaux flux publiés dans la session ne seront plus mis en sourdine.

L'appel de cette méthode entraîne la diffusion par les objets Publisher des clients qui publient les flux muteForced événements. De plus, l'objet Session de chaque client connecté à la session déclenche le muteForced événement (avec le active de l'objet de l'événement à true).

Vérifier le capabilities.canForceMute propriété de l'objet Session pour vérifier si vous pouvez appeler cette fonction sans problème. Cette fonctionnalité est réservée aux clients qui se sont connectés à l'aide d'un jeton auquel le rôle de modérateur a été attribué (voir la Création de jetons (documentation).

Paramètres :
Nom Type Description
excludedStreams Tableau Un tableau d'objets Stream à exclure de la mise en sourdine. Notez que si vous souhaitez empêcher la mise en sourdine du ou des flux publiés par le client local, vous devez inclure dans ce tableau le ou les objets Stream correspondant(s) à ces flux.

Voir : : - Session.capabilities - Session.forceMuteStream() - Session.disableForceMute() - Événement « muteForced » de la session - Événement « muteForced » de l'éditeur - Couper le son des flux vidéo dans une session

Retours :

Une promesse qui renvoie une valeur nulle lorsque l'opération s'achève avec succès. La promesse est rejetée en cas d'erreur. La name La propriété de l'objet Error prend l'une des valeurs suivantes, en fonction du type d'erreur :

  • 'OT_NOT_CONNECTED' — Le client n'est pas connecté à la session.
  • 'INVALID_PARAMETER' — si un ou plusieurs des paramètres transmis ne sont pas valides.
  • 'OT_PERMISSION_DENIED' — Le rôle de l'utilisateur ne comprend pas les autorisations nécessaires pour forcer d'autres utilisateurs à se mettre en mode silencieux. Vous définissez le rôle d'un utilisateur lorsque vous créez son jeton d'utilisateur (voir la Présentation de la création de jetons). Vous transmettez la chaîne de caractères du jeton en tant que paramètre de la fonction connect() méthode de l'objet Session.
  • 'OT_UNEXPECTED_SERVER_RESPONSE' — en cas d'erreur interne du serveur.

forceMuteStream(stream) → {Promise}

Force l'éditeur d'un flux spécifié à couper le son.

L'appel de cette méthode entraîne l'objet Publisher du client publiant le flux à déclencher un muteForced événement.

Vérifier le capabilities.canForceMute propriété de l'objet Session pour vérifier si vous pouvez appeler cette fonction sans problème. Cette fonctionnalité est réservée aux clients qui se sont connectés à l'aide d'un jeton auquel le rôle de modérateur a été attribué (voir la Création de jetons (documentation).

Paramètres :
Nom Type Description
stream Flux Le flux à mettre en sourdine.

Voir : : - Session.capabilities - Session.forceMuteAll() - Événement « muteForced » de l'éditeur - Couper le son des flux vidéo dans une session

Retours :

Une promesse qui renvoie une valeur nulle lorsque l'opération s'achève avec succès. La promesse est rejetée en cas d'erreur. La name La propriété de l'objet Error prend l'une des valeurs suivantes, en fonction du type d'erreur :

  • 'OT_NOT_CONNECTED' — Le client n'est pas connecté à la session.
  • 'OT_INVALID_PARAMETER' — si un ou plusieurs des paramètres transmis ne sont pas valides.
  • 'OT_PERMISSION_DENIED' — Le rôle de l'utilisateur ne comprend pas les autorisations nécessaires pour forcer d'autres utilisateurs à se mettre en mode silencieux. Vous définissez le rôle d'un utilisateur lorsque vous créez son jeton d'utilisateur (voir la Présentation de la création de jetons). Vous transmettez la chaîne de caractères du jeton en tant que paramètre de la fonction connect() méthode de l'objet Session.
  • 'OT_NOT_FOUND' — Le flux n'a pas été trouvé au cours de cette session.
  • 'OT_UNEXPECTED_SERVER_RESPONSE' — En cas d'erreur interne du serveur.

forceUnpublish(stream, completionHandler) → {Promise.<void>}

Force l'éditeur du flux spécifié à cesser la publication de ce flux.

L'appel de cette méthode entraîne l'envoi par l'objet Session d'un streamDestroyed événement sur tous les clients abonnés au flux (y compris le client qui publie le flux). Le reason La propriété de l'objet StreamEvent est définie sur "forceUnpublished".

L'objet OT déclenche un exception même si le rôle de l'utilisateur ne comprend pas les autorisations nécessaires pour obliger d'autres utilisateurs à retirer une publication. Vous définissez le rôle d'un utilisateur lorsque vous créez son jeton d'utilisateur (voir la section Présentation de la création de jetons). Vous transmettez la chaîne de caractères du jeton en tant que paramètre de la fonction connect() méthode de l'objet Session. Voir ExceptionEvent et OT.on().

Événements déclenchés :

exception (ExceptionEvent) — Le rôle de l'utilisateur ne lui permet pas d'obliger d'autres utilisateurs à retirer une publication.

streamDestroyed (Événement de flux) — Le flux a été désactivé. L'objet Session diffuse cette information à tous les clients abonnés au flux, ainsi qu'au client de l'éditeur.

Paramètres :
Nom Type Description
stream Flux Le flux doit être retiré de la publication.
completionHandler fonction (Facultatif) Une fonction à appeler lorsque l'appel à la forceUnpublish() la méthode aboutit ou échoue. Cette fonction prend un paramètre — error. En cas de réussite, le completionHandler Aucun argument n'est transmis à la fonction. En cas d'erreur, la fonction reçoit un error paramètre d'objet. Le error objet, défini par le Erreur La classe dispose de deux propriétés : code (un nombre entier) et message (une chaîne de caractères), qui identifie la cause de l'échec. L'appel de forceUnpublish() échoue si le rôle attribué à votre jeton n'est pas « modérateur » ; dans ce cas, le error.name est fixée à "OT_PERMISSION_DENIED". Le code suivant ajoute un gestionnaire de complétion lors de l'appel de la fonction forceUnpublish() méthode : session.forceUnpublish(stream, function (error) { if (error) { console.log(error); } else { console.log("Connection forced to disconnect: " + connection.id); } });
Retours :

Une promesse qui se résout lorsque la suppression de la publication a lieu

getPublisherForStream(stream) → {Éditeur}

Renvoie l'objet Publisher local associé à un flux donné.

Paramètres :
Nom Type Description
stream Flux Le flux dont vous souhaitez connaître l'éditeur.

Voir : : - forceUnpublish() - Abonné - Événement de flux

Retours :

Un objet Publisher correspondant au flux spécifié. Renvoie null s'il n'existe aucun objet Publisher local pour le flux spécifié.

getSubscribersForStream(stream) → {Array}

Renvoie un tableau d'objets « Subscriber » locaux pour un flux donné.

Paramètres :
Nom Type Description
stream Flux Le flux pour lequel vous souhaitez trouver des abonnés.

Voir : : - unsubscribe() - Abonné - Événement de flux

Retours :

Un tableau de Abonné objets pour le flux spécifié.

off(type, gestionnaire, contexte) → {Object}

Supprime un ou plusieurs gestionnaires d'événements.

Si vous transmettez un nom d'événement et une méthode de gestion, cette dernière est supprimée pour cet événement :

obj.off("eventName", eventHandler);

Si vous transmettez plusieurs noms d'événements et une méthode de gestion, celle-ci est supprimée pour ces événements :

obj.off("eventName1 eventName2", eventHandler);

Si vous transmettez un ou plusieurs noms d'événements et non méthode de gestionnaire, tous les gestionnaires sont supprimés pour ces événements :

obj.off("event1Name event2Name");

Si vous ne passez aucun argument, tous les gestionnaires d'événements sont supprimés pour tous les événements déclenchés par l'objet :

obj.off();

Cette méthode prend également en charge une syntaxe alternative, dans laquelle le premier paramètre est un objet qui constitue une table de correspondance entre les noms d'événements et les fonctions de gestion, et le deuxième paramètre (facultatif) est le contexte utilisé pour chaque gestionnaire :

obj.off(
   {
      eventName1: event1Handler,
      eventName2: event2Handler
   });
Paramètres :
Nom Type Description
type Chaîne (Facultatif) La chaîne de caractères identifiant le type d'événement. Vous pouvez utiliser un espace pour spécifier plusieurs événements, comme dans « accessAllowed accessDenied accessDialogClosed ». Si vous n'indiquez aucun type valeur (ou d'autres arguments), tous les gestionnaires d'événements sont supprimés pour l'objet.
handler fonction (Facultatif) La fonction de gestion d'événement à supprimer. La fonction de gestion doit correspondre à l'objet fonction qui a été transmis à on(). Faites attention aux fonctions auxiliaires telles que bind() qui renvoient une nouvelle fonction lorsqu’elles sont appelées. Si vous ne transmettez aucun handler, tous les gestionnaires d'événements sont supprimés pour l'événement spécifié type.
context Objet (Facultatif) Si vous spécifiez un context, le gestionnaire d'événements est supprimé pour tous les événements spécifiés et tous les gestionnaires qui utilisent le contexte spécifié. (Le contexte doit correspondre au contexte transmis à on().)

Voir : : - on() - une fois() - Evénements

Retours :

L'objet qui a déclenché l'événement.

on(type, handler, context) → {EventDispatcher}

Ajoute une fonction de gestion d'événements pour un ou plusieurs événements.

Le code suivant ajoute un gestionnaire d'événement pour un événement :

obj.on("eventName", function (event) {
    // This is the event handler.
});

Si vous transmettez plusieurs noms d'événements et une méthode de gestion, celle-ci est enregistrée pour chacun de ces événements :

obj.on("eventName1 eventName2",
       function (event) {
           // This is the event handler.
       });

Vous pouvez également passer un troisième context paramètre (facultatif) permettant de définir la valeur de this dans la méthode de gestionnaire :

obj.on("eventName",
       function (event) {
           // This is the event handler.
       },
       obj);

La méthode prend également en charge une syntaxe alternative, dans laquelle le premier paramètre est un objet représentant une table associative contenant les noms d'événements et les fonctions de gestion, et le deuxième paramètre (facultatif) correspond au contexte utilisé pour chaque gestionnaire :

obj.on(
   {
      eventName1: function (event) {
              // This is the handler for eventName1.
          },
      eventName2:  function (event) {
              // This is the handler for eventName2.
          }
   },
   obj);

Si vous n'ajoutez pas de gestionnaire pour un événement, celui-ci est ignoré au niveau local.

Paramètres :
Nom Type Description
type Chaîne Chaîne de caractères identifiant le type d'événement. Vous pouvez spécifier plusieurs noms d'événements dans cette chaîne, en les séparant par un espace. Le gestionnaire d'événements traitera chacun de ces événements.
handler fonction La fonction de gestion destinée à traiter l'événement. Cette fonction prend l'objet événement en paramètre.
context Objet (Facultatif) Définit la valeur de this dans la fonction de gestion des événements.

Voir : : - off() - une fois() - Evénements

Retours :

L'objet EventDispatcher.

once(type, handler, context) → {Object}

Ajoute une fonction de gestion d'événements pour un ou plusieurs événements. Une fois que la fonction de gestion est appelée, la méthode de gestion spécifiée est supprimée en tant que gestionnaire de cet événement. (Lorsque vous utilisez la on() méthode permettant d'ajouter un gestionnaire d'événements ; ce gestionnaire est pas est supprimé lorsqu’il est appelé.) Le once() Cette méthode équivaut à appeler la on() méthode et appel off() lors de la première invocation du gestionnaire.

Le code suivant ajoute un gestionnaire d'événement ponctuel pour un événement :

obj.once("eventName", function (event) {
   // This is the event handler.
});

Si vous transmettez plusieurs noms d'événements et une méthode de gestion, celle-ci est enregistrée pour chacun de ces événements :

obj.once("eventName1 eventName2"
         function (event) {
             // This is the event handler.
         });

Vous pouvez également passer un troisième context paramètre (facultatif) permettant de définir la valeur de this dans la méthode de gestionnaire :

obj.once("eventName",
         function (event) {
             // This is the event handler.
         },
         obj);

La méthode prend également en charge une syntaxe alternative, dans laquelle le premier paramètre est un objet qui constitue une table de correspondance entre les noms d'événements et les fonctions de gestion, et le deuxième paramètre (facultatif) correspond au contexte utilisé pour chaque gestionnaire :

obj.once(
   {
      eventName1: function (event) {
                 // This is the event handler for eventName1.
          },
      eventName2:  function (event) {
                 // This is the event handler for eventName1.
          }
   },
   obj);
Paramètres :
Nom Type Description
type Chaîne Chaîne identifiant le type d'événement. Vous pouvez spécifier plusieurs noms d'événements dans cette chaîne, en les séparant par un espace. Le gestionnaire d'événements traitera la première occurrence de ces événements. Une fois le premier événement survenu, le gestionnaire est supprimé (pour tous les événements spécifiés).
handler fonction La fonction de gestion destinée à traiter l'événement. Cette fonction prend l'objet événement en paramètre.
context Objet (Facultatif) Définit la valeur de this dans la fonction de gestion des événements.

Voir : : - on() - off() - Evénements

Retours :

L'objet qui a déclenché l'événement.

publish(éditeur, gestionnaire_de_fin)

Les publish() La méthode commence à diffuser un flux audio-vidéo vers la session. Le flux audio-vidéo est capté à partir d'un microphone et d'une webcam locaux. Une fois la diffusion réussie, les objets Session de tous les clients connectés transmettent le streamCreated événement.

Vous transmettez un objet `Publisher` en tant que seul paramètre de la méthode. Vous pouvez initialiser un objet `Publisher` en appelant la méthode OT.initPublisher() méthode. Avant d'appeler Session.publish().

Cette méthode se présente sous une autre forme : publish(targetElement: String | HTMLElement, properties: Object, completionHandler: Function): Publisher — Dans ce formulaire, vous devez pas ne transmettez pas d'objet Publisher à la fonction. À la place, vous transmettez un targetElement (l'élément HTML cible ou l'identifiant de l'élément HTML cible pour l'éditeur), un paramètre facultatif properties objet qui définit les options de l'éditeur (voir OT.initPublisher()), ainsi qu'une fonction de gestion des finitions facultative. La méthode renvoie un nouvel objet `Publisher`, qui commence à envoyer un flux audio-vidéo vers la session. La suite de cette documentation décrit la forme qui prend un seul objet `Publisher` comme paramètre.

Un affichage local du flux publié est créé sur la page Web en remplaçant l'élément spécifié dans le DOM par un affichage vidéo en streaming. Le flux vidéo est automatiquement inversé horizontalement afin que les utilisateurs puissent se voir et observer les mouvements dans leur flux de manière naturelle. Si la largeur et la hauteur de l'affichage ne correspondent pas au format 4:3 du signal vidéo, le flux vidéo est recadré pour s'adapter à l' affichage.

Si l'appel de cette méthode crée un nouvel objet Publisher et que la bibliothèque Video API Vonage n'a pas accès à la caméra ou au microphone, la page Web invite l'utilisateur à autoriser l'accès à la caméra et au microphone.

L'objet OT déclenche un exception même si le rôle de l'utilisateur ne comprend pas les autorisations nécessaires à la publication. Par exemple, si le rôle de l'utilisateur est défini sur « abonné », il ne peut pas publier. Vous définissez le rôle d'un utilisateur lorsque vous créez son jeton d'utilisateur (voir Présentation de la création de jetons). Vous transmettez la chaîne de caractères du jeton en tant que paramètre de la fonction connect() méthode de l'objet Session. Voir ExceptionEvent et OT.on().

L'application génère une erreur si la session n'est pas connectée.

Événements déclenchés :

exception (ExceptionEvent) — Envoyé par l'objet OT. Cela peut se produire lorsque le rôle de l'utilisateur ne lui permet pas de publier (le code la propriété de l'objet événement est définie sur 1 500) ; cela peut également se produire si la connexion échoue (le code la propriété de l'objet événement est définie sur 1013). WebRTC est un protocole peer-to-peer, et il est possible que certaines connexions échouent. La cause la plus courante d'échec est un pare-feu que le protocole ne parvient pas à traverser.

streamCreated (Événement de flux) — Le flux a été publié. L'objet Session diffuse cette information à tous les clients abonnés au flux, ainsi qu'au client de l'éditeur.

Exemple

L'exemple suivant publie une vidéo dès que la session est établie :

var apiKey = ""; // Replace with your API key. See https://tokbox.com/account
var sessionId = ""; // Replace with your own session ID.
                    // /developer/guides/create-session/.
var token = ""; // Replace with a generated token that has been assigned the publish role.
                // See https://tokbox.com/developer/guides/create-token/.
var session = OT.initSession(apiKey, sessionID);
session.connect(token, function(error) {
  if (error) {
    console.log(error.message);
  } else {
    var publisherOptions = {width: 400, height:300, name:"Bob's stream"};
    // This assumes that there is a DOM element with the ID 'publisher':
    publisher = OT.initPublisher('publisher', publisherOptions);
    session.publish(publisher);
  }
});
Paramètres :
Nom Type Description
publisher Éditeur Un objet `Publisher`, que vous initialisez en appelant la méthode OT.initPublisher() méthode.
completionHandler fonction (Facultatif) Une fonction à appeler lorsque l'appel à la publish() la méthode aboutit ou échoue. Cette fonction prend un paramètre — error. En cas de réussite, le completionHandler Aucun argument n'est transmis à la fonction. En cas d'erreur, la fonction reçoit un error paramètre d'objet (voir la section Erreur objet). Le error L'objet possède deux propriétés : code (un nombre entier) et message (une chaîne de caractères), qui identifie la cause de l'échec. L'appel de publish() échoue si le rôle attribué à votre jeton n'est ni « éditeur » ni « modérateur » ; dans ce cas, le error.name est fixée à "OT_PERMISSION_DENIED". Appel publish() échoue également si le client ne parvient pas à se connecter ; dans ce cas, le error.name est fixée à "OT_NOT_CONNECTED". Le code suivant ajoute un gestionnaire de complétion lors de l'appel de la fonction publish() méthode : session.publish(publisher, null, function (error) { if (error) { console.log(error.message); } else { console.log("Publishing a stream."); } });
Retours :

L'objet Publisher correspondant à ce flux.

removeEventListener(type, listener, context)

Paramètres :
Nom Type Description
type Chaîne La chaîne de caractères identifiant le type d'événement.
listener fonction La fonction d'écouteur d'événement à supprimer.
context Objet (Facultatif) Si vous spécifiez un context, le gestionnaire d'événements est supprimé pour tous les événements spécifiés et tous les écouteurs d'événements qui utilisent le contexte spécifié. (Le contexte doit correspondre au contexte transmis à addEventListener().)

Déclassé — utilisation off() au lieu de cela.

Supprime un écouteur d'événement pour un événement spécifique.

Lance une exception si le listener Le nom n'est pas valide.

Voir : : - off() - Evénements

setEncryptionSecret(secret) → {Promise}

Définit la clé de chiffrement pour une session dans laquelle le chiffrement de bout en bout est activé. Si cette méthode est appelée dans une session où le chiffrement n'est pas activé, la fonction s'exécutera sans générer d'erreur. Les utilisateurs peuvent modifier leur clé de chiffrement à tout moment. Voir la section sur le chiffrement de bout en bout guide du développeur.

Paramètres :
Nom Type Description
secret chaîne de caractères La clé de chiffrement.

Voir : : - OT.initSession - Événements réservés aux abonnés

Retours :

Une promesse qui renvoie une valeur nulle lorsque l'opération s'achève avec succès. La promesse est rejetée en cas d'erreur. La name La propriété de l'objet Error prend l'une des valeurs suivantes, en fonction du type d'erreur :

  • 'OT_INVALID_ENCRYPTION_SECRET'; Le mot de passe n'est pas valide.

Un décalage caché peut se produire lorsqu'aucune erreur n'est signalée. Voir événements destinés aux abonnés pour plus d'informations.

setIceConfig(newIceConfig)

Définit la configuration ICE pour toutes les connexions d'une session. Cela remplace toute configuration ICE précédemment définie.

Cette fonctionnalité est disponible pour les projets qui utilisent le configurable Module complémentaire TURN server.

Paramètres :
Nom Type Description
newIceConfig IceConfig Cet objet définit la configuration ICE. Il possède les propriétés suivantes : - includeServers (Chaîne) — Définissez cette valeur sur « custom » pour que le client utilise uniquement les serveurs TURN personnalisés que vous indiquez dans le fichier customServers propriété de la newIceConfig paramètre. Définissez-le sur « all » pour que le client utilise à la fois les serveurs TURN personnalisés que vous fournissez et les serveurs TURN de la Video API Vonage. - transportPolicy (Chaîne) — Définissez cette valeur sur « all » (valeur par défaut) et le client utilisera tous les types de transport ICE (tels que host, srflx et TURN) pour établir la connectivité multimédia. Définissez cette valeur sur « relay » pour forcer systématiquement la connectivité via TURN et ignorer tous les autres candidats ICE. - customServers (Tableau) — Définissez ici un tableau d'objets décrivant vos serveurs TURN personnalisés. Chaque objet correspond à un serveur TURN personnalisé et comprend les propriétés suivantes : - urls (Chaîne ou tableau de chaînes) — Une chaîne ou un tableau de chaînes, où chaque chaîne correspond à une URL prise en charge par le serveur TURN (il peut s'agir d'une seule URL). - username (Chaîne de caractères, facultatif) — Nom d'utilisateur du serveur TURN défini dans cet objet. - credential (Chaîne de caractères, facultatif) — Chaîne d'identifiants pour le serveur TURN défini dans cet objet.

Voir : : - OT.initSession()

signal(signal, gestionnaireDeFin) → {Promise.<void>}

Envoie un signal à chaque client ou à un client spécifique de la session. Spécifiez un to de la propriété signal paramètre permettant de limiter l'envoi du signal à un client spécifique ; sinon, le signal est envoyé à chaque client connecté à la session.

L'exemple suivant envoie un signal de type « foo » contenant une charge utile spécifiée (« hello ») à tous les clients connectés à la session :

try {
  await session.signal({
    type: "foo",
    data: "hello"
  });
  console.log("signal sent");
} catch (error) {
  console.log("signal error: " + error.message);
}

L'appel de cette méthode sans spécifier de client destinataire (en définissant le to propriété de la signal (paramètre) entraîne l'envoi de plusieurs signaux (un à chaque client de la session). Pour plus d'informations sur la facturation de la signalisation, consultez la Tarifs de la Video API Vonage page.

L'exemple suivant envoie un signal de type « foo » contenant une charge utile (« hello ») à un client spécifique connecté à la session :

try {
  await session.signal({
    type: "foo",
    to: recipientConnection, // a Connection object
    data: "hello"
  });
  console.log("signal sent");
} catch (error) {
  console.log("signal error: " + error.message);
}

Ajouter un gestionnaire d'événements pour le signal événement permettant de détecter tous les signaux envoyés au cours de la session. Ajoutez un gestionnaire d'événements pour le signal:type événement permettant de détecter uniquement les signaux d'un type donné (remplacer type, dans signal:type, avec le type de signal à surveiller). L'objet Session diffuse ces événements. (Voir événements.)

Paramètres :
Nom Type Description
signal Objet Un objet contenant les propriétés suivantes qui définissent le signal : - data — (Chaîne) Les données à envoyer. La longueur maximale de la chaîne de données est de 8 ko. Ne définissez pas la chaîne de données sur null ou undefined. - retryAfterReconnect— (Booléen) Lors de la reconnexion à la session, indique s’il faut envoyer les signaux qui ont été déclenchés pendant la déconnexion. Si votre client perd sa connexion à la session de la Video API en raison d’une interruption de la connexion réseau, le client tente de se reconnecter à la session, et l’objet Session déclenche un reconnecting événement. Par défaut, les signaux générés pendant la déconnexion sont envoyés lorsque (et si) le client se reconnecte à la session de la Video API de Vonage. Vous pouvez empêcher cela en configurant le retryAfterReconnect à la propriété false. (La valeur par défaut est true.) - to — (Connexion) A Connexion objet correspondant au client auquel le message doit être envoyé. Si vous ne spécifiez pas cette propriété, le signal est envoyé à tous les clients connectés à la session. - type — (Chaîne) Le type du signal. Vous pouvez utiliser ce type pour filtrer les signaux lorsque vous définissez un gestionnaire d'événement pour le signal:type événement (où vous remplacez type (avec la chaîne de caractères de type). La longueur maximale de la type La chaîne comporte 128 caractères et ne doit contenir que des lettres (A-Z et a-z), des Numbers (0-9), les caractères « - », « _ » et « ~ ». Chaque propriété est facultative. Si vous ne définissez aucune de ces propriétés, vous enverrez un signal sans données ni type à chaque client connecté à la session.
completionHandler fonction (Facultatif) Une fonction appelée lorsque l'envoi du signal aboutit ou échoue. Cette fonction prend un paramètre : — error. En cas de réussite, le completionHandler Aucun argument n'est transmis à la fonction. En cas d'erreur, la fonction reçoit un error objet, défini par le Erreur classe. Les error L'objet possède les propriétés suivantes : - code — (Numéro) Un code d'erreur, qui peut être l'un des suivants : --- --- 400 L'une des propriétés du signal n'est pas valide. 404 Le client spécifié par le to La propriété n'est pas associée à la session. 413 Les type la chaîne dépasse la longueur maximale (128 octets), ou le data La chaîne dépasse la taille maximale (8 ko). 500 Vous n'êtes pas connecté à la session de la Video API Vonage. - message — (Chaîne) Une description de l'erreur. Notez que le completionHandler résultat positif (error == null) indique que les options transmises à la fonction Session.signal() La méthode est valide et le signal a été envoyé. Cela pas indiquent que le signal a bien été reçu par l'un des destinataires visés.

Voir : : - signal et signal : type événements

Retours :

Une promesse qui se résout une fois que le signal a été envoyé

subscribe(flux, élémentCible, propriétés, gestionnaireDeFin) → {Abonné}

S'abonne à un flux accessible à la session. Vous pouvez récupérer un tableau des flux disponibles à partir de la streams de la propriété sessionConnected et streamCreated événements (voir SessionConnectEvent et Événement de flux).

Le flux auquel l'utilisateur est abonné s'affiche sur la page Web locale en remplaçant l'élément spécifié dans le DOM par un affichage vidéo en streaming. Si la largeur et la hauteur de l'affichage ne correspondent pas au format 4:3 du signal vidéo, le flux vidéo est recadré pour s'adapter à l'affichage. Si le flux ne comporte pas de composante vidéo, un écran vide accompagné d’un indicateur audio s’affiche à la place du flux vidéo.

L'application génère une erreur si la session n'est pas connectée ou si le targetElement n'existe pas dans le DOM HTML.

Exemple

Le code suivant permet de s'abonner aux flux d'autres clients :

var apiKey = ""; // Replace with your API key. See https://tokbox.com/account
var sessionID = ""; // Replace with your own session ID.
                    // See https://tokbox.com/developer/guides/create-session/.
var token = ""; // Replace with a generated token.
                // See https://tokbox.com/developer/guides/create-token/.

var session = OT.initSession(apiKey, sessionID);
session.on("streamCreated", function(event) {
  subscriber = session.subscribe(event.stream, targetElement);
});
session.connect(token);
Paramètres :
Nom Type Description
stream Flux L'objet `Stream` représentant le flux auquel nous essayons de nous abonner.
targetElement Objet (Facultatif) L'élément DOM ou le id attribut de l'élément DOM existant utilisé pour déterminer l'emplacement de la vidéo de l'abonné dans le DOM HTML. Voir la section insertMode de la propriété properties paramètre. Si vous ne spécifiez pas de targetElement, l'application ajoute un nouvel élément DOM au code HTML body.
properties Objet Il s'agit d'un objet qui contient les propriétés suivantes : - audioVolume (Nombres) — Volume audio souhaité, compris entre 0 et 100, lors de la première ouverture de l'abonné (valeur par défaut : 50). Une fois que vous êtes abonné au flux, vous pouvez régler le volume en appelant la méthode setAudioVolume() méthode de l'objet « Subscriber ». Ce réglage du volume n'affecte que la lecture locale ; il n'a aucune incidence sur le volume du flux sur les autres clients. - fitMode (Chaîne) — Détermine la manière dont la vidéo s'affiche si ses dimensions ne correspondent pas à celles de l'élément DOM. Vous pouvez attribuer à cette propriété l'une des valeurs suivantes : - "cover" — La vidéo est recadrée si ses dimensions ne correspondent pas à celles de l'élément DOM. Il s'agit du paramètre par défaut pour les vidéos dont la source est une caméra (pour les objets Stream avec le videoType propriété définie sur "camera"). - "contain" — La vidéo est affichée en format « letterbox » si ses dimensions ne correspondent pas à celles de l'élément DOM. Il s'agit du paramètre par défaut pour les vidéos de partage d'écran (pour les objets Stream avec le videoType propriété définie sur "screen"). - height (Nombre ou chaîne de caractères) — Hauteur initiale souhaitée de la vidéo affichée dans la page HTML (par défaut : 198 pixels). Vous pouvez indiquer le nombre de pixels sous la forme d’un nombre (par exemple 300) ou d’une chaîne de caractères se terminant par « px » (par exemple « 300px »). Vous pouvez également indiquer un pourcentage de la taille de l’élément parent, à l’aide d’une chaîne de caractères se terminant par « % » (par exemple « 100 % »). Remarque : Pour redimensionner la vidéo, modifiez le code CSS de l'élément DOM de l'abonné (le element propriété de l'objet « Subscriber ») ou (si la hauteur est spécifiée en pourcentage) son élément DOM parent (voir Redimensionnement ou repositionnement d'une vidéo). - insertDefaultUI (Booléen) — Indique s'il faut utiliser l'interface utilisateur par défaut de la Video API de Vonage (true, valeur par défaut) ou non (false). L'élément d'interface utilisateur par défaut contient des commandes d'interface utilisateur, un indicateur de chargement de la vidéo, ainsi qu'un recadrage automatique de la vidéo ou un affichage en format « letterbox », en plus de la vidéo elle-même. (Si vous laissez insertDefaultUI réglé sur true, vous pouvez modifier les paramètres individuels de l'interface utilisateur à l'aide de la fitMode, showControlset style options.) Si vous définissez cette option sur false, OpenTok.js n'insère pas d'élément d'interface utilisateur par défaut dans le DOM HTML, et le element La propriété de l'objet `Subscriber` est non définie. L'objet `Subscriber` déclenche un videoElementCreated événement lorsque le video (ou dans Internet Explorer l'élément object élément contenant la vidéo) est créé. Le element La propriété de l'objet événement est une référence à l'abonné video (ou object) élément. Ajoutez-le au DOM HTML pour afficher la vidéo. Définissez cette option sur false si vous souhaitez déplacer le fichier Publisher video élément (ou son object élément dans Internet Explorer) dans le DOM HTML. Si vous définissez cette valeur sur falsene pas régler le targetElement paramètre. (Cela entraîne une erreur transmise à la OT.initPublisher() fonction de rappel.) Pour ajouter la vidéo au DOM HTML, ajoutez un écouteur d'événement pour l'élément videoElementCreated événement, puis ajoutez le element propriété de l'objet événement dans le DOM HTML. - insertMode (Chaîne) — Spécifie la manière dont l'objet « Subscriber » sera inséré dans le DOM HTML. Voir la section targetElement paramètre. Cette chaîne peut prendre les valeurs suivantes : - "replace" — L'objet « Subscriber » remplace le contenu de l'élément cible. Il s'agit du comportement par défaut. - "after" — L'objet `Subscriber` est un nouvel élément inséré après l'élément `targetElement` dans le DOM HTML. (L'objet `Subscriber` et l'élément `targetElement` ont tous deux le même élément parent.) - "before" — L'objet « Subscriber » est un nouvel élément inséré avant l'élément « targetElement » dans le DOM HTML. (L'objet « Subscriber » et l'élément « targetElement » ont tous deux le même élément parent.) - "append" — L'objet « Subscriber » est un nouvel élément ajouté en tant qu'enfant de l'élément cible. S'il existe d'autres éléments enfants, le « Subscriber » est ajouté en tant que dernier élément enfant de l'élément cible. - preferredFrameRate (Nombre) — Fréquence d'images souhaitée pour la vidéo de l'abonné. La réduction de cette fréquence entraîne une baisse de la qualité vidéo sur le client abonné, mais elle permet également de réduire la charge sur le réseau et le processeur. Vous pouvez choisir d’utiliser une fréquence d’images inférieure pour les abonnés à un flux moins important que d’autres flux. Cette propriété ne s’applique que lors de l’abonnement à un flux utilisant le fonctionnalité vidéo adaptative. La vidéo adaptative est disponible : - Uniquement dans les sessions qui utilisent le routeur multimédia de la Video API Vonage (sessions avec le mode média (réglé sur « routed »). - Uniquement pour les flux publiés par des clients prenant en charge la vidéo évolutive : les clients utilisant le Client SDK iOS de la Video API Vonage (sur certains appareils), le Client SDK Android de la Video API Vonage (sur certains appareils) ou OpenTok.js dans Chrome et Safari. Dans les flux qui n'utilisent pas la vidéo évolutive, la définition de cette propriété n'a aucun effet. Remarque : La fréquence d'images des flux vidéo adaptatifs s'ajuste automatiquement pour chaque abonné, en fonction des conditions du réseau et de l'utilisation du processeur, même si vous n'appelez pas cette méthode. Appelez cette méthode si vous souhaitez définir une fréquence d'images maximale pour cet abonné. Toutes les fréquences d’images ne sont pas disponibles pour un abonné. Lorsque vous définissez la fréquence d’images souhaitée pour l’abonné, OpenTok.js sélectionne la meilleure fréquence d’images disponible correspondant à votre paramètre. Les fréquences d’images disponibles dépendent de la valeur de la propriété stream.frameRate propriété, qui représente la valeur maximale disponible pour le flux. Les fréquences d'images réelles disponibles dépendent, de manière dynamique, des ressources réseau et CPU dont disposent l'éditeur et l'abonné. Vous pouvez modifier dynamiquement la fréquence d'images préférée en appelant la fonction setPreferredFrameRate() méthode de l'objet Subscriber. - preferredResolution (Chaîne Objet) — Résolution souhaitée pour la vidéo de l'abonné. Définissez cette valeur sur "auto" (une chaîne de caractères, recommandé) pour qu'OpenTok.js définisse la résolution en fonction des dimensions de la fenêtre du navigateur de l'abonné. Vous pouvez également définir cette valeur sous la forme d'un objet comportant deux propriétés : width et height (les deux nombres), par exemple {width: 320, height: 240}. La réduction de la résolution vidéo par défaut diminue la qualité vidéo pour l'abonné, mais elle réduit également la charge sur le réseau et l'utilisation du processeur. Vous pouvez choisir d'utiliser une résolution inférieure en fonction des dimensions de la vidéo de l'abonné sur la page Web (ce qui est géré automatiquement par le "auto" (paramètre). Vous pouvez également choisir d'utiliser une résolution moins importante (et donc plus faible) pour les abonnés à un flux que pour les autres flux. Remarque : Les "auto" Le paramètre de résolution ne s'applique que lorsque vous utilisez l'élément « Subscriber Video » par défaut créé par le SDK. Il ne fonctionne pas si vous créez votre propre élément « Video » en réponse à la mediaStreamAvailable événement (voir ce sujet). Cette propriété ne s'applique que lors de l'abonnement à un flux qui utilise le fonctionnalité vidéo adaptative. La vidéo adaptative est disponible : - Uniquement dans les sessions qui utilisent le routeur multimédia de la Video API Vonage (sessions avec le mode média (réglé sur « routed »). - Uniquement pour les flux publiés par des clients prenant en charge la vidéo évolutive : les clients utilisant le Client SDK iOS de la Video API Vonage (sur certains appareils), le Client SDK Android de la Video API Vonage (sur certains appareils) ou OpenTok.js dans Chrome et Safari. Dans les flux qui n’utilisent pas la vidéo évolutive, la définition de cette propriété n’a aucun effet. Toutes les résolutions ne sont pas disponibles pour un abonné. Lorsque vous définissez la résolution préférée, OpenTok.js et l’encodeur vidéo choisissent la meilleure résolution disponible qui correspond à votre paramètre. Les résolutions disponibles dépendent de la résolution du flux publié. L’objet Subscriber stream.resolution La propriété représente la résolution la plus élevée disponible pour le flux. Chacune des résolutions disponibles pour un flux utilisera le même format d'image. Les résolutions réellement disponibles dépendent, de manière dynamique, des ressources réseau et CPU dont disposent l'éditeur et l'abonné. Vous pouvez modifier dynamiquement la résolution vidéo préférée utilisée en appelant la méthode setPreferredResolution() méthode de l'objet Subscriber. - showControls (Booléen) — Indique s'il faut afficher les contrôles d'interface utilisateur intégrés pour l'abonné (par défaut : true). Ces commandes comprennent l'affichage du nom, l'indicateur de niveau audio, le bouton de commande du haut-parleur, l'indicateur de désactivation de la vidéo et l'icône d'avertissement de désactivation de la vidéo. Vous pouvez désactiver toutes les commandes de l'interface utilisateur en définissant cette propriété sur false. Vous pouvez contrôler l'affichage des différents éléments de l'interface utilisateur en laissant cette propriété définie sur true (par défaut) et en configurant les propriétés individuelles du style propriété. - style (Objet) — Objet contenant les propriétés qui définissent l'apparence initiale des contrôles de l'interface utilisateur de l'abonné. Le style L'objet comporte les propriétés suivantes : - audioBlockedDisplayMode (Chaîne) — Indique s'il faut afficher l'icône par défaut signalant que le son est bloqué dans la section « Abonnés » (dans les navigateurs où la lecture automatique du son est bloquée). Les valeurs possibles sont : "auto" (l'icône par défaut s'affiche lorsque le son est désactivé) et "off" (l'icône n'apparaît pas). Définissez ce paramètre sur "off" si vous souhaitez afficher votre propre élément d'interface utilisateur indiquant que le son est bloqué. En réponse à un élément HTML déclenchant un click événement, vous pouvez appeler la fonction OT.unblockAudio() méthode permettant de lancer la lecture audio dans cet abonné et dans tous les autres abonnés bloqués. - audioLevelDisplayMode (Chaîne) — Comment afficher l'indicateur de niveau audio. Les valeurs possibles sont : "auto" (l'indicateur s'affiche lorsque la vidéo est désactivée), "off" (l'indicateur n'apparaît pas), et "on" (l'indicateur reste toujours affiché). - backgroundImageURI (Chaîne) — Un URI correspondant à une image à afficher comme image d'arrière-plan lorsqu'aucune vidéo n'est affichée. (Il se peut qu'aucune vidéo ne s'affiche si vous appelez subscribeToVideo(false) sur l'objet Subscriber). Vous pouvez transmettre une URI http ou https pointant vers un fichier PNG, JPEG ou GIF non animé. Vous pouvez également utiliser la méthode data schéma URI (au lieu de http ou https) et transmettre des données PNG encodées en base-64, telles que celles obtenues à partir du Subscriber.getImgData() méthode. (Par exemple, vous pourriez attribuer à la propriété une valeur renvoyée par l'appel de getImgData() sur un objet « Subscriber » précédent.) Si l'URL ou les données d'image ne sont pas valides, la propriété est ignorée (la tentative de définition de l'image échoue sans message d'erreur). - buttonDisplayMode (Chaîne) — Comment afficher les commandes du haut-parleur Les valeurs possibles sont : "auto" (les commandes s'affichent lors de la première affichage du flux et lorsque l'utilisateur passe la souris sur l'affichage), "off" (les commandes ne sont pas affichées), et "on" (les commandes sont toujours affichées). - nameDisplayMode (Chaîne) — Indique s'il faut afficher le nom du flux. Les valeurs possibles sont : "auto" (le nom s'affiche lors de la première affichage du flux et lorsque l'utilisateur passe la souris sur l'affichage), "off" (le nom n'est pas affiché), et "on" (le nom s'affiche toujours). - videoDisabledDisplayMode (Chaîne) — Indique s'il faut afficher l'indicateur de désactivation de la vidéo et les icônes d'avertissement de désactivation de la vidéo pour un abonné. Ces icônes indiquent que la vidéo a été désactivée (ou risque de l'être, dans le cas de l'icône d'avertissement) en raison d'une mauvaise qualité de diffusion. Ce paramètre s'applique uniquement à l'objet « Abonné ». Les valeurs possibles sont : "auto" (ces icônes s'affichent automatiquement lorsque la vidéo en cours de lecture est désactivée ou risque de l'être en raison d'une mauvaise qualité de diffusion), "off" (ne pas afficher les icônes), et "on" (afficher les icônes). Le paramètre par défaut est "auto" - subscribeToAudio (Booléen) — Indique s'il faut s'abonner par défaut au flux audio (si disponible) pour ce flux (valeur par défaut : true). - subscribeToVideo (Booléen) — Indique s'il faut s'abonner dès le départ à la vidéo (si disponible) pour ce flux (par défaut : true). - subscribeToCaptions (Booléen) — Indique s'il faut s'abonner par défaut aux sous-titres (si disponibles) pour le flux (par défaut : la valeur « sous-titres » définie par l'éditeur du flux). - testNetwork (Booléen) — Indique si, lors de l'abonnement à un flux publié par le client local, vous souhaitez que ce flux provienne du routeur multimédia de la Video API de Vonage (true) ou si vous souhaitez que le DOM affiche simplement la vidéo de la caméra locale (false). Définissez cette valeur sur true lorsque vous souhaitez utiliser le Subscriber.getStats() méthode permettant de vérifier les statistiques d'un flux que vous publiez. Ce paramètre s'applique uniquement aux flux publiés par le client local dans une session utilisant le Media Router de la Video API (sessions avec le mode média (réglé sur « routed »), et non dans les sessions dont le mode multimédia est réglé sur « relayed ». La valeur par défaut est false. - width (Nombre ou chaîne de caractères) — Largeur initiale souhaitée de la vidéo affichée dans la page HTML (par défaut : 264 pixels). Vous pouvez indiquer le nombre de pixels sous la forme d’un nombre (par exemple 400) ou d’une chaîne de caractères se terminant par « px » (par exemple « 400px »). Vous pouvez également indiquer un pourcentage de la taille de l’élément parent, à l’aide d’une chaîne de caractères se terminant par « % » (par exemple « 100 % »). Remarque : Pour redimensionner la vidéo, modifiez le code CSS de l'élément DOM de l'abonné (le element propriété de l'objet « Subscriber ») ou (si la largeur est spécifiée en pourcentage) son élément DOM parent (voir Redimensionnement ou repositionnement d'une vidéo).
completionHandler fonction (Facultatif) Une fonction à appeler lorsque l'appel à la subscribe() la méthode aboutit ou échoue. Cette fonction prend un paramètre — error. En cas de réussite, le completionHandler Aucun argument n'est transmis à la fonction. En cas d'erreur, la fonction reçoit un error objet, défini par le Erreur La classe dispose de deux propriétés : code (un nombre entier) et message (une chaîne de caractères), qui identifie la cause de l'échec. Le code suivant ajoute un completionHandler lors de l'appel du subscribe() méthode : session.subscribe(stream, "subscriber", null, function (error) { if (error) { console.log(error.message); } else { console.log("Subscribed to stream: " + stream.id); } });
Retours :

L'objet « Subscriber » correspondant à ce flux. Les fonctions de contrôle du flux sont accessibles via l'objet « Subscriber ».

retirer de la publication (éditeur)

Cesse de diffuser le flux audio-vidéo de l'éditeur spécifié vers la session. Par défaut, la représentation locale du flux audio-vidéo est supprimée de la page Web. Une fois la fermeture effectuée avec succès, l'objet Session de chaque page Web connectée déclenche un streamDestroyed événement.

Pour éviter que l'éditeur ne soit supprimé du DOM, ajoutez un écouteur d'événement pour l'élément streamDestroyed événement déclenché par l'objet Publisher et appeler la méthode preventDefault() méthode de l'objet événement.

Remarque : Si vous comptez réutiliser un objet Publisher pour publier successivement dans différentes sessions (ou dans la même session), ajoutez un écouteur d'événement pour le streamDestroyed événement déclenché par l'objet Publisher (lorsqu'il cesse de publier). Dans le gestionnaire d'événements, appelez la méthode preventDefault() méthode de l'objet « event » afin d'empêcher que la vidéo de l'éditeur ne soit supprimée de la page.

Événements déclenchés :

streamDestroyed (Événement de flux) — Le flux associé à l'éditeur a été supprimé. Émis par l' éditeur sur son navigateur. Émis par l'objet Session sur toutes les autres connexions abonnées au flux de l'éditeur.

Exemple

L'exemple suivant publie un flux vers une session et ajoute un lien « Se déconnecter » à la page Web. Un clic sur ce lien met fin à la publication du flux.

<script>
  var apiKey = ""; // Replace with your API key. See https://tokbox.com/account
  var sessionID = ""; // Replace with your own session ID.
                   // See https://tokbox.com/developer/guides/create-session/.
  var token = ""; // Replace with a generated token.
                  // See https://tokbox.com/developer/guides/create-token/.
  var publisher;
  var session = OT.initSession(apiKey, sessionID);
  session.connect(token, function(error) {
    if (error) {
      console.log(error.message);
    } else {
      // This assumes that there is a DOM element with the ID 'publisher':
      publisher = OT.initPublisher('publisher');
      session.publish(publisher);
    }
  });

  function unpublish() {
    session.unpublish(publisher);
  }
</script>

<body>

    <div id="publisherContainer/>
    <br/>

    [Stop Publishing](javascript:unpublish())

</body>
Paramètres :
Nom Type Description
publisher Éditeur L'objet Publisher pour interrompre la diffusion en continu.

Voir : : - publish() - Événement « streamDestroyed »

se désabonner (abonné)

Met fin à l'abonnement à un flux dans la session. L'affichage du flux audio-vidéo est supprimé de la page Web locale.

Exemple

Le code suivant permet de s'abonner aux flux d'autres clients. Pour chaque flux, le code ajoute également un lien « Se désabonner ».

var apiKey = ""; // Replace with your API key. See See https://tokbox.com/account
var sessionID = ""; // Replace with your own session ID.
                    // See https://tokbox.com/developer/guides/create-session/.
var token = ""; // Replace with a generated token.
                // See https://tokbox.com/developer/guides/create-token/.
var streams = [];

var session = OT.initSession(apiKey, sessionID);
session.on("streamCreated", function(event) {
    var stream = event.stream;
    displayStream(stream);
});
session.connect(token);

function displayStream(stream) {
    var div = document.createElement('div');
    div.setAttribute('id', 'stream' + stream.streamId);

    var subscriber = session.subscribe(stream, div);
    subscribers.push(subscriber);

    var aLink = document.createElement('a');
    aLink.setAttribute('href', 'javascript: unsubscribe("' + subscriber.id + '")');
    aLink.innerHTML = "Unsubscribe";

    var streamsContainer = document.getElementById('streamsContainer');
    streamsContainer.appendChild(div);
    streamsContainer.appendChild(aLink);

    streams = event.streams;
}

function unsubscribe(subscriberId) {
    console.log("unsubscribe called");
    for (var i = 0; i < subscribers.length; i++) {
        var subscriber = subscribers[i];
        if (subscriber.id == subscriberId) {
            session.unsubscribe(subscriber);
        }
    }
}
Paramètres :
Nom Type Description
subscriber Abonné L'objet « Abonné » à désabonner.

Voir : : - s'abonner()

Evénements

archiveCréée

Envoyé dès le début de l'enregistrement d'archive de la session.

Voir : : - ArchiveÉvénement - Vue d'ensemble de l'archivage

archiveArrêté

Envoyé lorsque l'enregistrement d'archive de la session s'arrête.

Voir : : - ArchiveÉvénement - Vue d'ensemble de l'archivage

connexionCréée

Déclenché lorsqu'un nouveau client (y compris le vôtre) s'est connecté à la session, et pour chaque client de la session lors de votre première connexion. (L'objet Session déclenche également un sessionConnected événement qui se produit lorsque votre client local se connecte.)

Voir : : - ConnectionEvent - OT.initSession()

connexion interrompue

Un client, autre que le vôtre, s'est déconnecté de la session.

Voir : : - ConnectionEvent

cpuPerformanceChanged

L'état de performance du processeur a changé. Il peut prendre l'une des valeurs suivantes : « nominal », « modéré », « grave » ou « critique ».

Voir : : - CpuPerformanceChangedEvent

muteForced

Un modérateur a contraint les clients diffusant des flux vers la session à couper le son (le active La propriété de cet objet MuteForcedEvent est définie sur true), ou un modérateur a désactivé la fonction de mise en sourdine du son dans la session (le active La propriété de cet objet `MuteForcedEvent` est définie sur false).

Voir : : - MuteForcedEvent - Session.forceMuteAll() - Session.disableForceMute() - Couper le son des flux vidéo dans une session

sessionConnected

Le client s'est connecté à une session de la Video API. Cet événement est déclenché de manière asynchrone en réponse à un appel réussi vers la connect() méthode d'un objet `Session`. Avant d'appeler la connect() méthode, initialisez la session en appelant la OT.initSession() méthode. Pour un exemple de code et plus de détails, voir Session.connect().

Voir : : - SessionConnectEvent - Session.connect() - OT.initSession()

session déconnectée

Le client s'est déconnecté de la session. Cet événement peut être déclenché de manière asynchrone en réponse à un appel réussi vers la disconnect() méthode de l'objet Session. Cet événement peut également être déclenché si une connexion de session est interrompue de manière inopinée, comme dans le cas d'une perte de connexion réseau.

Par défaut, tous les objets « Subscriber » sont désabonnés et supprimés du DOM HTML. Chaque objet « Subscriber » déclenche un destroyed événement déclenché lorsque l'élément est supprimé du DOM HTML. Si vous appelez la méthode preventDefault() méthode dans l' écouteur d'événement pour le sessionDisconnect Lors de cet événement, le comportement par défaut est désactivé, et vous pouvez, si vous le souhaitez, nettoyer les objets « Subscriber » à l'aide de votre propre code.

Les reason La propriété de l'objet événement indique la raison pour laquelle le client a été déconnecté.

Voir : : - Session.disconnect() - Session.forceDisconnect() - SessionDisconnectEvent

sessionReconnected

Le client local s'est reconnecté à la session de la Video API après une perte temporaire de connexion. En cas de perte de connexion, l'objet Session déclenche un sessionReconnecting événement, avant le sessionReconnected événement. Si le client ne parvient pas à se reconnecter à la session, l'objet Session déclenche un sessionDisconnected cet événement plutôt que celui-ci.

Les éditeurs et abonnés existants sont automatiquement reconnectés lorsque le client se reconnecte et que l'objet Session déclenche cet événement.

Tous les signaux envoyés par d'autres clients pendant que votre client était déconnecté sont reçus lors de la reconnexion. Par défaut, les signaux émis par le client local alors qu'il était déconnecté (en appelant la fonction Session.signal() (méthode) sont envoyés lorsque le client se reconnecte à la session de la Video API. Vous pouvez empêcher cela en configurant le retryAfterReconnect propriété à false dans le signal que vous passez dans l'objet Session.signal() méthode.

Voir : : - Événement - Événement « sessionReconnecting » - Événement « sessionDisconnected »

Reconnexion à la session

Le client local a perdu sa connexion à une session de la Video API Vonage et tente de se reconnecter. Cela résulte d'une perte de connectivité réseau. Si le client parvient à se reconnecter à la session, l'objet Session déclenche un sessionReconnected événement. Sinon, si le client ne parvient pas à se reconnecter, l'objet Session déclenche un sessionDisconnected événement.

Face à cet événement, vous pouvez afficher une notification dans l'interface utilisateur afin d'informer l'utilisateur que l'application tente de se reconnecter à la session et que les flux audio et vidéo sont temporairement interrompus.

Voir : : - Événement - Événement « sessionReconnected » - Événement « sessionDisconnected »

signal

Un signal a été reçu depuis la session. Le SignalEvent La classe définit cet objet d'événement. Elle comprend les propriétés suivantes :

  • data — (Chaîne) La chaîne de données envoyée avec le signal (le cas échéant).
  • from — (Connexion) La connexion correspondant au client qui a envoyé le signal.
  • type — (Chaîne) Le type attribué au signal (s'il y en a un).

Vous pouvez vous inscrire pour recevoir tous les signaux envoyés au cours de la session, en ajoutant un gestionnaire d'événements pour le signal événement. Par exemple, le code suivant ajoute un gestionnaire d'événements pour traiter tous les signaux envoyés au cours de la session :

session.on("signal", function(event) {
  console.log("Signal sent from connection: " + event.from.id);
  console.log("Signal data: " + event.data);
});

Vous pouvez vous abonner aux signaux d'un type donné en ajoutant un gestionnaire d'événements pour le signal:type événement (en remplacement de type avec la chaîne de caractères correspondant au type réel sur laquelle effectuer le filtrage).

Voir : : - Session.signal() - SignalEvent - signal : type événement

streamCreated

Un nouveau flux, publié par un autre client, a été créé au cours de cette session. Pour les flux publiés par votre propre client, l'objet Publisher envoie un streamCreated événement. Pour un exemple de code et plus de détails, consultez Événement de flux.

Voir : : - Événement de flux - Session.publish()

streamDestroyed

Un flux provenant d'un autre client a cessé d'être publié dans la session.

Par défaut, tous les objets « Subscriber » abonnés au flux sont désabonnés et supprimés du DOM HTML. Chaque objet « Subscriber » déclenche un destroyed événement déclenché lorsque l'élément est supprimé du DOM HTML. Si vous appelez la méthode preventDefault() méthode dans l'écouteur d'événement pour le streamDestroyed Dans ce cas, le comportement par défaut est désactivé et vous pouvez libérer un objet « Subscriber » associé au flux en appelant sa méthode destroy() méthode. Voir Session.getSubscribersForStream().

Pour les flux publiés par votre propre client, l'objet Publisher envoie un streamDestroyed événement.

Pour consulter un exemple de code et obtenir plus de détails, voir Événement de flux.

Voir : : - Événement de flux

streamPropertyChanged

Définit un événement déclenché lorsqu'une propriété d'un flux a changé. Cela peut se produire dans les conditions suivantes :

  • Un flux a commencé ou cessé de diffuser du contenu audio, des sous-titres ou de la vidéo (voir Publisher.publishAudio(), Publisher.publishCaptions() et Publisher.publishVideo()). Remarque : la vidéo d'un abonné peut être désactivée ou activée pour des raisons autres que la décision de l'éditeur de la désactiver ou de l'activer. Un objet « Abonné » déclenche videoDisabled et videoEnabled les événements, quelles que soient les conditions, qui entraînent la désactivation ou l'activation du flux de l'abonné.
  • Les videoDimensions La propriété de l'objet Stream a changé (voir Stream.videoDimensions).
  • Les videoType Une propriété de l'objet Stream a changé. Cela peut se produire dans un flux publié par un appareil mobile. (Voir Stream.videoType.)

Voir : : - StreamPropertyChangedEvent - Publisher.publishAudio() - Publisher.publishCaptions() - Publisher.publishVideo() - Stream.hasAudio - Stream.hasCaptions - Stream.hasVideo - Stream.videoDimensions - Vidéo réservée aux abonnés — Événement désactivé - Événement avec vidéos réservées aux abonnés

signal : type

Un signal du type spécifié a été reçu depuis la session. Le SignalEvent La classe définit cet objet d'événement. Elle comprend les propriétés suivantes :

  • data — (Chaîne) La chaîne de données envoyée avec le signal.
  • from — (Connexion) La connexion correspondant au client qui a envoyé le signal.
  • type — (Chaîne) Le type attribué au signal (le cas échéant).

Vous pouvez vous abonner aux signaux d'un type donné en ajoutant un gestionnaire d'événements pour le signal:type événement (en remplacement de type avec la chaîne de caractères correspondant au type réel sur lequel effectuer le filtrage). Par exemple, le code suivant ajoute un gestionnaire d'événements pour les signaux de type « foo » :

session.on("signal:foo", function(event) {
  console.log("foo signal sent from connection " + event.from.id);
  console.log("Signal data: " + event.data);
});

Vous pouvez vous inscrire pour recevoir tous les signaux envoyés au cours de la session, en ajoutant un gestionnaire d'événements pour le signal événement.

Voir : : - Session.signal() - SignalEvent - signal événement