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 fonctionconnect()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 fonctionconnect()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 fonctionconnect()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
videoDisabledetvideoEnabledles événements, quelles que soient les conditions, qui entraînent la désactivation ou l'activation du flux de l'abonné. - Les
videoDimensionsLa propriété de l'objet Stream a changé (voir Stream.videoDimensions). - Les
videoTypeUne 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