L'objet Publisher fournit le mécanisme permettant de contrôler le flux publié. L'appel de la méthode OT.initPublisher() méthode crée un objet Publisher.

Le code suivant instancie une session et publie un flux audio-vidéo dès la connexion à la session :

 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 that has been assigned the moderator 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 {
     // This example assumes that a DOM element with the ID 'publisherElement' exists
     var publisherProperties = {width: 400, height:300, name:"Bob's stream"};
     publisher = OT.initPublisher('publisherElement', publisherProperties);
     session.publish(publisher);
   }
 });

Cet exemple crée un objet Publisher et ajoute sa vidéo à un élément DOM dont l'ID est publisherElement en appelant le OT.initPublisher() méthode. Elle publie ensuite un flux vers la session en appelant la publish() méthode de l'objet Session.

Propriétés

Nom Type Description
accessAllowed Booléen Si l'utilisateur a autorisé l'accès à la caméra et au microphone. L'objet Publisher déclenche un accessAllowed événement lorsque l'utilisateur accorde l'accès. L'objet Publisher déclenche un accessDenied événement se produisant lorsque l'utilisateur refuse l'accès.
element Élément L'élément DOM HTML contenant l'éditeur. (Remarque : lorsque vous réglez le insertDefaultUI à l'option false dans l'appel à OT.initPublisher, le element (la propriété n'est pas définie.)
id Chaîne L'identifiant DOM de l'éditeur.
stream Flux Les Flux objet correspondant au flux de l'éditeur.
session Session Les Session à laquelle appartient l'éditeur.

Voir : : - OT.initPublisher - Session.publish()

Méthodes

Nom Description
addEventListener(type, listener, context) Obsolète.
applyAudioFilter(audioFilter) → {Promise} Applique un filtre audio pour l'éditeur.
applyVideoFilter(videoFilter) → {Promise} Applique un filtre vidéo pour l'éditeur.
clearAudioFilter() → {Promise} Supprime le filtre audio appliqué à l'éditeur.
clearVideoFilter() → {Promise} Supprime le filtre vidéo appliqué à l'éditeur.
cycleVideo() → {Promise} Permet de passer à la source d'entrée vidéo suivante dans la liste des périphériques disponibles utilisée par l'éditeur.
destroy() → {Publisher} Supprime l'objet Publisher et le retire du DOM HTML.
getAudioFilter() → {Object} Renvoie le filtre audio utilisé par l'éditeur (ou null s'il n'y a pas de filtre audio).
getAudioSource() → {MediaStreamTrack} Renvoie l'objet `MediaStreamTrack` utilisé comme source d'entrée audio pour l'éditeur.
getImgData() → {String} Renvoie la chaîne de données PNG encodée en base 64 représentant la vidéo de l'éditeur.
getMaxVideoBitrate() → {Integer} Renvoie le débit binaire maximal personnalisé défini pour l'éditeur.
getRtcStatsReport() → {Promise} Renvoie une promesse qui, en cas de réussite, se résout en un tableau d'objets contenant les propriétés RTCStatsReport du flux publié.
getStats(completionHandler) → {Promise.<PublisherStatsArr>} Renvoie les informations relatives à la qualité du flux de l'éditeur, notamment : - Le nombre total de paquets audio et vidéo perdus - Le nombre total de paquets audio et vidéo envoyés - Le nombre total d'octets audio et vidéo envoyés - La fréquence d'images vidéo moyenne actuelle Vous pouvez utiliser ces statistiques pour évaluer la qualité du flux audio-vidéo de l'éditeur.
getStyle() → {Object} Renvoie un objet comportant les propriétés qui définissent les contrôles actuels de l'interface utilisateur de Publisher.
`getTargetScalabilityMode() → {String undefined}` Renvoie le mode d'évolutivité cible qui a été explicitement défini via Éditeur.
getVideoBitratePreset() → {String} Renvoie le préréglage de débit binaire pour le Publisher.
getVideoContentHint() → {String} Renvoie l'indication de contenu correspondant à la piste vidéo.
getVideoFilter() → {Object} Renvoie le filtre vidéo appliqué par l'éditeur.
getVideoSource() → {VideoSource} Renvoie un objet contenant les propriétés qui définissent la source vidéo actuelle de l'éditeur.
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.
publishAudio(value) → {Publisher} Commence à diffuser le flux audio (s'il n'est pas déjà en cours de diffusion) lorsque le value est true; interrompt la diffusion audio (si celle-ci est en cours) lorsque le value est false.
publishCaptions(value) → {Promise.<void>} Commence à publier les légendes (si la publication n'est pas déjà en cours) lorsque le value est true; cesse de publier les légendes (si la publication est en cours) lorsque le value est false.
publishVideo(value, callback) → {Publisher} Active ou désactive la vidéo pour l'éditeur.
removeEventListener(type, listener, context) Obsolète.
setAudioMediaProcessorConnector(mediaProcessorConnector) → {Promise} Définit un MediaProcessorConnector pour la piste audio de l'éditeur.
setAudioSource(audioSource) → {Promise} Permet de changer la source d'entrée audio utilisée par l'éditeur.
setMaxVideoBitrate(bitrateBps) Définit un débit binaire vidéo maximal personnalisé pour l'éditeur.
setPreferredFrameRate(frameRate) → {Promise} Permet de définir la fréquence d'images vidéo souhaitée.
setPreferredResolution(preferredResolution) → {Promise} Permet de définir la résolution vidéo souhaitée.
setStyle(style, value) → {Publisher} Définit les propriétés qui déterminent l'apparence de certains contrôles de l'interface utilisateur de Publisher.
setTargetScalabilityMode(scalabilityMode) Définit le mode d'évolutivité cible (SVC - Scalable Video Coding) pour cet éditeur.
setVideoBitratePreset(preset) Définit le débit binaire vidéo maximal pour l'éditeur sur l'un des préréglages suivants : « default », « bw_saver » ou « extra_bw_saver ».
setVideoContentHint(videoContentHint) → {Promise.<void>} Définit l'indication de contenu pour la piste vidéo du flux de l'éditeur.
setVideoMediaProcessorConnector(mediaProcessorConnector) → {Promise} Définit un MediaProcessorConnector pour la piste vidéo de l'éditeur.
setVideoSource(videoSourceId) → {Promise} Cette méthode permet de définir la source vidéo pour un éditeur qui utilise une caméra.
videoHeight() → {Number} Renvoie la hauteur, en pixels, de la vidéo locale de l'éditeur, lue à partir du fichier local <video> élément.
videoWidth() → {Number} Renvoie la largeur, en pixels, de la vidéo locale de l'éditeur, lue à partir du fichier local <video> élément.

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

applyAudioFilter(audioFilter) → {Promise}

Applique un filtre audio à l'éditeur. Dans la version actuelle, vous ne pouvez appliquer qu'un filtre avancé de suppression du bruit. Un éditeur ne peut avoir qu'un seul filtre (ou aucun) appliqué à la fois. Lorsque vous définissez un nouveau filtre, tout filtre précédemment défini est supprimé.

Cette méthode est incompatible avec la Publisher.setAudioMediaProcessorConnector() méthode. L'appel de cette méthode après Publisher.setAudioMediaProccessorConnector(connector) renvoie une promesse qui est rejetée avec une erreur, avec le name propriété de l'erreur définie sur 'OT_NOT_SUPPORTED'. Vous pouvez supprimer le connecteur en appelant Publisher.setAudioMediaProccessorConnector(null).

Remarque : Les filtres audio ne sont pris en charge que dans les versions récentes de Chrome, Electron, Opera, Edge, Samsung Internet et WebView sur Android. Ils ne sont pas pris en charge dans les autres navigateurs (non basés sur Chromium) ni sur iOS. Vous pouvez vérifier si le client prend en charge cette fonctionnalité en appelant la méthode OT.hasMediaProcessorSupport('audio') méthode.

Important : Les filtres audio nécessitent une prise en charge adéquate par le processeur. Même dans les navigateurs compatibles, les transformateurs peuvent ne pas fonctionner de manière stable lorsque des processus en arrière-plan limitent les ressources de traitement disponibles. Voir Exigences du client.

L'appel de cette méthode génère une erreur (la Promise renvoyée par la méthode est rejetée) dans les conditions suivantes :

  • Ce navigateur ne prend pas en charge cette méthode.
  • Un filtre personnalisé est déjà utilisé via le Publisher.setAudioMediaProcessorConnector() méthode.
  • Une erreur s'est produite lors de l'application du filtre de transformation.

Vous pouvez également définir le filtre audio initial en configurant un audioFilter option lors de l'appel de OT.initPublisher().

Paramètres :
Nom Type Description
audioFilter Objet Objet définissant le filtre audio à appliquer. Les filtres suivants sont pris en charge : - Filtre avancé de suppression du bruit - Régler le type propriété de l'objet à "advancedNoiseSuppression".

Voir : : - OT.hasMediaProcessorSupport('audio') - Publisher.getAudioFilter() - Publisher.clearAudioFilter()

Retours :

Une promesse qui se résout lorsque l'opération s'achève avec succès. En cas d'erreur, la promesse est rejetée et aucun nouveau filtre vidéo n'est défini.

applyVideoFilter(videoFilter) → {Promise}

Applique un filtre vidéo à l'éditeur. Vous pouvez appliquer un filtre de flou d'arrière-plan. Un éditeur ne peut en avoir qu'un seul (ou aucun) appliqué à la fois. Lorsque vous définissez un nouveau filtre, le filtre précédemment défini est supprimé.

Cette méthode est incompatible avec la Publisher.setVideoMediaProcessorConnector() méthode. L'appel de cette méthode après Publisher.setVideoMediaProcessorConnector(connector) renvoie une promesse qui est rejetée avec une erreur, avec le name propriété de l'erreur définie sur 'OT_NOT_SUPPORTED'. Vous pouvez supprimer le connecteur en appelant Publisher.setVideoMediaProcessorConnector(null).

Remarque : Les filtres vidéo ne sont pris en charge que dans les versions récentes de Chrome, Firefox, Electron, Opera, Edge, Samsung Internet, WebView Android, ainsi que dans les dernières versions de Safari (version 26 et plus) et de WebView iOS (version 26 et plus). Vous pouvez vérifier si le client prend en charge cette fonctionnalité en appelant la méthode OT.hasMediaProcessorSupport('vidéo') méthode.

Important : Les filtres vidéo nécessitent une prise en charge suffisante par le processeur. Même dans les navigateurs compatibles, les transformateurs peuvent ne pas fonctionner de manière stable lorsque des processus en arrière-plan limitent les ressources de traitement disponibles. Voir Exigences du client.

L'appel de cette méthode génère une erreur (la Promise renvoyée par la méthode est rejetée) dans les conditions suivantes :

  • Ce navigateur ne prend pas en charge cette méthode.
  • Le lecteur n'utilise pas une source vidéo prise en charge. (Le videoSource de l'option OT.initPublisher() La méthode a été définie sur null, false, ou "screen").
  • Un filtre personnalisé est déjà utilisé via le Publisher.setVideoMediaProcessorConnector() méthode.
  • Il n'y a pas de dispositifs d'entrée vidéo (caméras) disponibles.
  • Une erreur s'est produite lors de l'acquisition de la vidéo à partir du périphérique d'entrée vidéo.
  • Une erreur s'est produite lors de l'application du filtre de transformation.

Vous pouvez également définir le filtre vidéo initial en définissant une valeur de videoFilter option lors de l'appel de OT.initPublisher().

Paramètres :
Nom Type Description
videoFilter Objet Objet définissant le filtre vidéo à appliquer. Les filtres suivants sont pris en charge : - Filtre de flou d'arrière-plan : - Régler le type propriété de l'objet à "backgroundBlur". Un objet de filtre de flou d'arrière-plan comprend un élément supplémentaire blurStrength propriété qui définit le rayon de flou et qui est facultative. Définissez-la sur l'une des valeurs suivantes : "low" ou "high" (par défaut). - Filtre de remplacement d'arrière-plan - Régler le type propriété de l'objet à "backgroundReplacement". Un objet filtre de remplacement d'arrière-plan comprend un élément supplémentaire backgroundImgUrl propriété qui définit l'URL de l'image d'arrière-plan à utiliser. Les BLOB d'image (chaîne de données d'image encodée en Base64) sont également acceptés. Les formats d'image suivants sont pris en charge : BMP, PNG, JPEG et GIF. L'image d'arrière-plan est redimensionnée pour s'adapter aux dimensions de la vidéo de l'éditeur. Pour un résultat optimal, utilisez une image présentant les mêmes dimensions (ou au moins le même format) que la vidéo publiée. Définissez le mirror option permettant de false lors de l'appel du OT.initPublisher() méthode permettant d'afficher l'image d'arrière-plan dans le bon sens (et non en miroir) sur la page de l'éditeur.

Voir : : - OT.hasMediaProcessorSupport('vidéo') - Publisher.getVideoFilter() - Publisher.clearVideoFilter()

Retours :

Une promesse qui se résout lorsque l'opération s'achève avec succès. En cas d'erreur, la promesse est rejetée et aucun nouveau filtre vidéo n'est défini.

clearAudioFilter() → {Promise}

Supprime le filtre audio appliqué à l'éditeur.

Cela entraînera une erreur (la Promise renvoyée par la méthode sera rejetée) si le filtre audio n'a pas pu être arrêté.

Voir : : - OT.hasMediaProcessorSupport('audio') - Publisher.applyAudioFilter() - Publisher.getAudioFilter()

Retours :

Une promesse qui est résolue lorsque l'opération s'achève avec succès. En cas d'erreur, la promesse est rejetée.

clearVideoFilter() → {Promise}

Supprime le filtre vidéo appliqué à l'éditeur.

Cela entraînera une erreur (la Promise renvoyée par la méthode sera rejetée) si le filtre vidéo n'a pas pu être arrêté.

Voir : : - OT.hasMediaProcessorSupport('vidéo') - Publisher.applyVideoFilter() - Publisher.getVideoFilter()

Retours :

Une promesse qui est résolue lorsque l'opération s'achève avec succès. En cas d'erreur, la promesse est rejetée.

cycleVideo() → {Promise}

Permet de passer à la source d'entrée vidéo suivante dans la liste des périphériques disponibles.

Cela entraînera une erreur (la Promise renvoyée par la méthode sera rejetée) dans les conditions suivantes :

  • L'utilisateur s'est vu refuser l'accès à l'appareil d'entrée vidéo.
  • L'éditeur n'utilise pas de source vidéo provenant d'une caméra. (Le videoSource de l'option OT.initPublisher() La méthode a été définie sur null, false, un objet MediaStreamTrack, ou "screen").
  • Il n'y a pas de dispositifs d'entrée vidéo (caméras) disponibles.
  • Une erreur s'est produite lors de l'acquisition de la vidéo à partir du périphérique d'entrée vidéo.

Voir : : - Publisher.setVideoSource()

Retours :

Une promesse qui se résout lorsque l'opération s'achève avec succès. La promesse se résout avec un objet qui possède un deviceId est définie sur l'identifiant de l'appareil photo utilisé :

  publisher.cycleVideo().then(console.log);
  // Output: {deviceId: "967a86e52..."}

En cas d'erreur, la promesse est rejetée.

destroy() → {Éditeur}

Supprime l'objet Publisher et le retire du DOM HTML.

L'objet Publisher envoie un destroyed événement déclenché lorsque l'élément DOM est supprimé.

Retours :

L'éditeur.

getAudioFilter() → {Object}

Renvoie le filtre audio utilisé par l'éditeur (ou null s'il n'y a pas de filtre audio).

Voir : : - OT.hasMediaProcessorSupport('audio') - Publisher.applyAudioFilter() - Publisher.clearAudioFilter()

Retours :

Le filtre audio utilisé par l'éditeur. Vérifiez le type propriété de l'objet pour connaître le type de filtre audio. Actuellement, seul le filtre avancé de suppression du bruit est pris en charge, et le type est fixée à "advancedNoiseSuppression".

getAudioSource() → {MediaStreamTrack}

Renvoie l'objet MediaStreamTrack utilisé comme source d'entrée audio pour l'éditeur. Si l'éditeur ne dispose pas de source audio, cette méthode renvoie null.

Voir : : - Publisher.setAudioSource()

Retours :

La source audio de l'éditeur (ou « null » s'il n'y en a pas).

getImgData() → {String}

Renvoie la chaîne de données PNG encodée en base 64 représentant la vidéo de l'éditeur.

Vous pouvez utiliser cette chaîne de caractères comme valeur pour un schéma d'URL de données transmis au paramètre « src » d' un fichier image, comme dans l'exemple suivant :

 var imgData = publisher.getImgData();

 var img = document.createElement("img");
 img.setAttribute("src", "data:image/png;base64," + imgData);
 var imgWin = window.open("about:blank", "Screenshot");
 imgWin.document.write("<body></body>");
 imgWin.document.body.appendChild(img);
Retours :

La chaîne encodée en base 64. Renvoie une chaîne vide s'il n'y a pas de vidéo.

getMaxVideoBitrate() → {Integer}

Renvoie le débit binaire maximal personnalisé défini pour l'éditeur.

Voir : : - Publisher.setMaxVideoBitrate() - Publisher Max Bitrate

Retours :

L'une des valeurs suivantes : 0, ou tout nombre entier compris entre 5 000 et 10 000 000.

getRtcStatsReport() → {Promise}

Renvoie une promesse qui, en cas de réussite, se résout en un tableau d'objets comprenant les propriétés RTCStatsReport du flux publié. (Voir Rapport RTCStats.)

Pour un éditeur dans une session acheminée (qui utilise l'option Video API Vonage Routeur multimédia), ce tableau contient un objet définissant les statistiques relatives au flux multimédia audio unique envoyé au routeur multimédia de la Video API Vonage. Dans une session relayée, le tableau contient un objet pour chaque abonné au flux publié. Chaque objet du tableau contient un rtcStatsReport propriété de type objet RTCStatsReport.

De plus, pour un éditeur dans une session relayée, chaque objet du tableau contient les deux propriétés suivantes :

  • connectionId (Chaîne) — L'identifiant unique de la connexion du client, qui correspond à l' id de la propriété connection propriété de la connexionCréée événement que l'objet Session a déclenché pour le client distant.
  • subscriberId (Chaîne) — L'identifiant unique de l'abonné, qui correspond à l' id propriété de l'objet « Subscriber » dans l'application du client abonné.

Ces deux propriétés ne sont pas définies pour un éditeur dans une session acheminée.

La Promesse sera rejetée dans les conditions suivantes :

  • Le navigateur ne prend pas en charge cette méthode (par exemple, dans Chrome version 57 et antérieures, qui ne prennent pas en charge la RTCPeerConnection.getStats() (norme).
  • Les PeerConnection car le module Publisher n'est pas connecté.

Voir : : - Subscriber.getRtcStatsReport()

Retours :

Une promesse qui est résolue lorsque l'opération s'achève avec succès. En cas d'erreur, la promesse est rejetée.

getStats(completionHandler) → {Promise.<PublisherStatsArr>}

Renvoie les informations relatives à la qualité du flux de l'éditeur, notamment les éléments suivants :

  • Le nombre total de paquets audio et vidéo perdus
  • Le nombre total de paquets audio et vidéo envoyés
  • Nombre total d'octets audio et vidéo envoyés
  • Taux de rafraîchissement moyen de la vidéo

Vous pouvez utiliser ces statistiques pour évaluer la qualité du flux audio-vidéo de l'éditeur.

Paramètres :
Nom Type Description
completionHandler fonction (Facultatif) Une fonction qui prend les paramètres suivants : - error (Erreur) — Une fois la méthode exécutée avec succès, cette propriété n'est pas définie. Une erreur se produit si l'éditeur n'est pas connecté à une session ou s'il ne diffuse pas de contenu audio ou vidéo. - statsArray (Tableau) — Tableau d'objets définissant les statistiques audio-vidéo actuelles de l'éditeur. Pour un éditeur participant à une session acheminée (c'est-à-dire une session qui utilise le Video API Vonage Routeur multimédia), ce tableau contient un objet définissant les statistiques relatives au flux multimédia audio unique envoyé au routeur multimédia de la Video API Vonage. Dans une session relayée, le tableau contient un objet pour chaque abonné au flux publié. Chaque objet du tableau contient un stats propriété qui comprend les propriétés suivantes : - audio.bytesSent (Nombre) — Nombre total d'octets audio envoyés à l'abonné (ou au routeur multimédia de la Video API Vonage) - audio.packetsLost (Nombre) — Nombre total de paquets audio qui ne sont pas parvenus à l'abonné (ou au routeur multimédia de la Video API Vonage) - audio.packetsSent (Nombre) — Nombre total de paquets audio envoyés à l'abonné (ou au routeur multimédia de la Video API Vonage) - timestamp (Numbers) — L'horodatage, en millisecondes depuis l'époque Unix, correspondant au moment où ces statistiques ont été recueillies - video.bytesSent (Nombre) — Nombre total d'octets vidéo envoyés à l'abonné (ou au routeur multimédia de la Video API Vonage) - video.packetsLost (Nombre) — Nombre total de paquets vidéo qui ne sont pas parvenus à l'abonné (ou au routeur multimédia de la Video API Vonage) - video.packetsSent (Nombre) — Nombre total de paquets vidéo envoyés à l'abonné - video.frameRate (Numbers) — Fréquence d'images moyenne actuelle de la vidéo. Cette propriété est obsolète et sera supprimée à l'avenir. Veuillez utiliser à la place la encodedFrameRate propriété dans les différentes couches. - video.layers (Tableau) — Liste des couches d'encodage vidéo actives, classées de la résolution la plus élevée à la plus faible. Chaque objet de couche comprend : - width (Numbers) — Largeur de la résolution vidéo de ce calque, en pixels - height (Numbers) — La hauteur de la résolution vidéo de ce calque, en pixels - encodedFrameRate (Numbers) — Fréquence d'images de ce calque, en images par seconde - bitrate (Numbers) — Débit binaire utilisé par cette couche, en bits par seconde - totalBitrate (Nombre) — Débit binaire total utilisé par cette couche, en bits par seconde. Ce chiffre inclut les en-têtes RTP, le remplissage et la charge utile - scalabilityMode (Numbers) — Chaîne de caractères décrivant la configuration de l'évolutivité (par exemple, "L1T3" (pour une couche spatiale et trois couches temporelles). Cela indique si l'on utilise la diffusion simultanée ou le SVC - codec (Nombre) — Le codec utilisé par cette couche - qualityLimitationReason (Numbers) — (Facultatif) Chaîne de caractères indiquant pourquoi la qualité vidéo de l'éditeur a pu être altérée. Valeurs possibles : - "bandwidth" — Dégradation de la qualité due à une bande passante réseau insuffisante - "cpu" — Dégradation de la qualité due aux limitations du processeur de l'appareil client - "other" — Autres raisons non précisées - transportStats (Objet) — Cette propriété est obsolète et sera supprimée à l'avenir. Veuillez utiliser à la place mediaLink.transport. - mediaLink.transport.connectionEstimatedBandwidth (Numbers) — Bande passante disponible estimée pour la connexion, en bits par seconde (bps) - mediaLink.transport.networkCondition (Chaîne) — État actuel du réseau. Les valeurs possibles sont les suivantes : unknown, critical, warning, fair, good et excellent. - mediaLink.transport.networkConditionReason (Chaîne de caractères) — Principale cause affectant l'état du réseau. Les valeurs possibles sont : none, unknown, bandwidth et packetLoss. De plus, pour un éditeur dans une session relayée, chaque objet du tableau contient les deux propriétés suivantes : - connectionId (Chaîne) — L'identifiant unique de la connexion du client, qui correspond à l' id de la propriété connection propriété de la connexionCréée événement que l'objet Session a déclenché pour le client distant. - subscriberId (Chaîne) — L'identifiant unique de l'abonné, qui correspond à l' id propriété de l'objet « Subscriber » dans l'application du client abonné. Ces deux propriétés ne sont pas définies pour un éditeur dans une session routée.

Voir : : - Subscriber.getStats() - Publisher.getRtcStatsReport()

Retours :

getStyle() → {Object}

Renvoie un objet dont les propriétés définissent les contrôles actuels de l'interface utilisateur de Publisher. Vous pouvez modifier les propriétés de cet objet et le transmettre à la setStyle() méthode de l'objet `Publisher`. (Voir la documentation relative à setStyle() pour voir les styles qui définissent cet objet.)

Voir : : - setStyle()

Retours :

L'objet qui définit les styles de l'éditeur.

getTargetScalabilityMode() → {String|undefined}

Renvoie le mode d'évolutivité cible qui a été explicitement défini via Publisher.setTargetScalabilityMode(). Renvoie la dernière valeur transmise au setter, ou undefined si la méthode setter n'a jamais été appelée. Cela reflète l'intention de l'utilisateur, et non le mode effectivement appliqué (qui peut varier en raison d'une solution de repli dépendant du codec).

Il s'agit d'une fonctionnalité en version bêta.

Voir : : - Publisher.setTargetScalabilityMode()

Retours :

Le mode d'évolutivité cible défini par l'appelant, ou undefined si cela n'est pas explicitement défini.

getVideoBitratePreset() → {String}

Renvoie le préréglage de débit binaire pour le Publisher.

Voir : : - Publisher.setVideoBitratePreset() - Publisher Max Bitrate

Retours :

L'une des valeurs suivantes : « custom », « extra_bw_saver », « bw_saver » ou « default »

getVideoContentHint() → {String}

Renvoie l'indication de contenu correspondant à la piste vidéo.

Voir : : - Publisher.setVideoContentHint()

Retours :

L'une des valeurs suivantes : "", "motion", "detailou "text".

getVideoFilter() → {Object}

Renvoie le filtre vidéo appliqué par l'éditeur.

Voir : : - OT.hasMediaProcessorSupport('vidéo') - Publisher.applyVideoFilter() - Publisher.clearVideoFilter()

Retours :

Le filtre vidéo appliqué à la source d'entrée vidéo utilisée par l'éditeur. Vérifiez le type propriété de l'objet permettant de connaître le type de filtre vidéo. Les filtres suivants sont pris en charge :

  • Filtre de flou d'arrière-plan - Le type la propriété de l'objet est définie sur "backgroundBlur". Un objet filtre de flou d'arrière-plan comprend un blurStrength propriété, qui définit le rayon de flou, peut être définie soit sur "low" ou "high".
  • Filtre de remplacement d'arrière-plan - Le type La propriété « type » de l'objet est définie sur "backgroundReplacement". Un objet filtre de remplacement d'arrière-plan comprend un élément supplémentaire backgroundImgUrl propriété qui définit l'URL de l'image d'arrière-plan à utiliser.

getVideoSource() → {VideoSource}

Renvoie un objet contenant les propriétés définissant la source vidéo actuelle de l'éditeur.

Voir : : - Publisher.setVideoSource() - OT.initPublisher()

Retours :

L'objet de retour possède les propriétés suivantes :

  • deviceId (Chaîne | null) — L'identifiant de l'appareil.
  • type (Chaîne | null) — Cette valeur est définie sur « camera » (pour une vidéo filmée avec une caméra), « screen » (pour une vidéo de partage d'écran), ou « custom » (pour une vidéo dont la source est un MediaStreamTrack).
  • track (MediaStreamTrack | null) — Le MediaStreamTrack correspondant à la vidéo.

Les propriétés non applicables seront définies sur null.

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.

publishAudio(valeur) → {Éditeur}

Commence la diffusion audio (si celle-ci n'est pas déjà en cours) lorsque le value est true; interrompt la diffusion audio (si celle-ci est en cours) lorsque le value est false.

Paramètres :
Nom Type Description
value Booléen Faut-il commencer à publier des fichiers audio (true) ou non (false).

Voir : : - OT.initPublisher() - Stream.hasAudio - StreamPropertyChangedEvent

Retours :

publishCaptions(valeur) → {Promise.<void>}

Commence à publier les légendes (si la publication n'est pas en cours) lorsque le value est true; cesse de publier les légendes (si la publication est en cours) lorsque le value est false.

Remarque : Aucune sous-titrage ne sera publié si l'éditeur ne dispose pas d'une source audio.

Pour plus d'informations, voir le Sous-titres en direct guide du développeur.

Paramètres :
Nom Type Description
value Booléen Faut-il commencer à publier des légendes (true) ou non (false).

Voir : : - OT.initPublisher() - subscribeToCaptions() - isSubscribedToCaptions() - Stream.hasCaptions - StreamPropertyChangedEvent

Retours :

publishVideo(value, callback) → {Éditeur}

Active ou désactive la diffusion de la vidéo pour l'éditeur. Cette commande déclenche la diffusion de la vidéo (si celle-ci n'est pas en cours de diffusion, si le client est connecté et si l'éditeur est en train de diffuser) lorsque le value est true; il interrompt la diffusion de la vidéo (si celle-ci est en cours de diffusion) lorsque le value est false.

Remarque : Le comportement de publishVideo varie selon que l'éditeur est actuellement connecté et en cours de publication :

  • Appel publishVideo(true) lorsque l'éditeur n'est pas connecté à une session, l'éditeur capture et affiche la vidéo localement, mais ne la diffuse pas en continu.
  • Appel publishVideo(false) lorsque l'éditeur n'est pas connecté à une session, cela entraîne l'arrêt de la capture vidéo locale par l'éditeur. Aucune vidéo n'est diffusée.
  • Appel publishVideo(true) Lorsque l'éditeur est connecté à une session mais qu'il ne diffuse pas de vidéo à ce moment-là, il capture et affiche la vidéo localement, mais ne la diffuse pas en streaming.
  • Appel publishVideo(false) Lorsque l'éditeur est connecté à une session mais qu'il ne diffuse pas de contenu à ce moment-là, il cesse de capturer la vidéo localement. Aucune vidéo n'est diffusée.
  • Appel publishVideo(true) Lorsque l'éditeur est à la fois connecté à une session et en cours de diffusion, cela l'amène à capturer et à traiter la vidéo localement, puis à la diffuser en continu.
  • Appel publishVideo(false) Lorsque l'éditeur est à la fois connecté à une session et en cours de diffusion, cela entraîne l'arrêt de la capture vidéo par l'éditeur et la diffusion d'images vidéo vides.
Paramètres :
Nom Type Description
value Booléen Faut-il se lancer dans la publication de vidéos (true) ou non (false).
callback fonction (Facultatif) Une fonction qui prend en paramètre un Error paramètre. Une fois la méthode exécutée avec succès, ce error Le paramètre n'est pas défini. Une erreur se produit si l'éditeur ne dispose d'aucun appareil permettant de diffuser le flux multimédia ou si la demande multimédia de l'utilisateur n'est pas prise en charge.

Voir : : - OT.initPublisher() - Stream.hasVideo - StreamPropertyChangedEvent

Retours :

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

setAudioMediaProcessorConnector(mediaProcessorConnector) → {Promise}

Définit un MediaProcessorConnector pour la piste audio de l'éditeur. Un éditeur ne peut avoir qu'une seule piste audio. Connecteur de processeur de médias appliqué à un moment donné. Lorsque vous configurez un nouveau connecteur, le connecteur audio précédemment configuré est supprimé.

Remarque : Les MediaProcessors ne sont pris en charge que dans les versions récentes de Chrome, Electron, Opera, Edge, Samsung Internet et Android WebView. Ils ne sont pas pris en charge dans les autres navigateurs (non basés sur Chromium) ni sous iOS. Vous pouvez vérifier si le client prend en charge cette fonctionnalité en appelant la méthode OT.hasMediaProcessorSupport('audio') méthode.

Important : Les processeurs multimédias nécessitent une prise en charge adéquate par le processeur. Même dans les navigateurs pris en charge, les transformateurs peuvent ne pas fonctionner de manière stable lorsque des processus en arrière-plan limitent les ressources de traitement disponibles. Voir Exigences du client.

L'appel de cette méthode génère une erreur (la Promise renvoyée par la méthode est rejetée) dans les conditions suivantes :

  • Aucun périphérique d'entrée audio (microphone) n'est disponible.
  • Une erreur s'est produite lors de la récupération du son à partir du périphérique d'entrée audio.
  • Une erreur s'est produite lors de la récupération de la piste traitée à partir du MediaProcessorConnector.

Vous pouvez effacer le connecteur actuel en appelant cette méthode avec null.

Pour plus d'informations, voir le Utilisation de la bibliothèque Vonage Media Processor guide du développeur.

Paramètres :
Nom Type Description
mediaProcessorConnector Connecteur de processeur de médias Une instance de MediaProcessorConnector. Voir la section Documentation de la bibliothèque Vonage Media Processor.

Voir : : - OT.hasMediaProcessorSupport('audio')

Retours :

Une promesse qui est résolue lorsque l'opération s'achève avec succès. En cas d'erreur, la promesse est rejetée et aucun connecteur n'est défini.

setAudioSource(audioSource) → {Promise}

Permet de changer la source d'entrée audio utilisée par l'éditeur. Vous pouvez définir la audioSource vers un identifiant de périphérique (chaîne de caractères) ou un objet `MediaStreamTrack` audio.

Cela entraînera une erreur (la Promise renvoyée par la méthode sera rejetée) dans les conditions suivantes :

  • Le navigateur ne prend pas en charge cette méthode. Cette méthode n'est pas prise en charge dans Internet Explorer ni dans les versions d'Edge non basées sur Chromium (antérieures à la version 79).
  • Le lecteur n'a pas été lancé avec une source audio. (Le audioSource de l'option OT.initPublisher() La méthode a été définie sur null ou false).
  • L'utilisateur a refusé l'accès au périphérique d'entrée audio.
  • Une erreur s'est produite lors de la récupération du flux audio à partir du périphérique d'entrée audio ou de l'objet MediaStreamTrack .
  • Les audioSource La valeur n'est ni une chaîne de caractères ni un objet MediaStreamTrack.
  • Les audioSource « string » n'est pas un périphérique d'entrée audio valide disponible pour le navigateur.
Paramètres :
Nom Type Description
audioSource Objet L'identifiant (chaîne de caractères) d'un périphérique d'entrée audio, ou un objet MediaStreamTrack audio.

Voir : : - Publisher.getAudioSource()

Retours :

Une promesse qui est résolue lorsque l'opération s'achève avec succès. En cas d'erreur, la promesse est rejetée.

setMaxVideoBitrate(bitrateBps)

Définit un débit binaire vidéo maximal personnalisé pour l'éditeur. Définissez cette valeur entre 5 000 et 10 000 000. Si vous définissez cette valeur sur 0, tout débit binaire personnalisé précédemment défini est supprimé et le comportement par défaut est rétabli.

La configuration du débit binaire maximal est prise en charge dans les versions les plus récentes de tous les navigateurs compatibles.

Paramètres :
Nom Type Description
bitrateBps Entier Valeur du débit binaire vidéo : comprise entre 5 000 et 10 000 000. Définissez cette valeur sur 0 pour supprimer un paramètre de débit binaire personnalisé et revenir au comportement par défaut.

Voir : : - Publisher.getMaxVideoBitrate() - Publisher.setVideoBitratePreset() - Publisher Max Bitrate

setPreferredFrameRate(frameRate) → {Promise}

Définit la fréquence d'images souhaitée pour la vidéo. Cette fonction permet de définir la fréquence d'images souhaitée pour la publication de la vidéo. La fréquence d'images doit être un nombre entier ≥ 1. En cas de réussite, les nouvelles contraintes de fréquence d'images sont appliquées à la piste vidéo.

Paramètres :
Nom Type Description
frameRate Numbers La fréquence d'images recommandée pour la vidéo.
Retours :

Se résout lorsque les contraintes vidéo sont appliquées avec succès. Dans le cas contraire, une erreur est levée — par exemple, si l'éditeur ne diffuse pas de vidéo, si la fréquence d'images n'est pas valide ou si l'application des contraintes échoue.

setPreferredResolution(preferredResolution) → {Promise}

Définit la résolution vidéo privilégiée. Cette fonction définit la résolution privilégiée pour l'éditeur de vidéo. Elle vérifie que l'entrée est bien un objet dont les propriétés « width » et « height » sont des entiers positifs, et s'assure que la résolution n'est pas supérieure à la résolution de publication initiale. En cas de réussite, elle applique les nouvelles contraintes à la piste vidéo.

Paramètres :
Nom Type Description
preferredResolution Objet La résolution souhaitée. Propriétés Nom Type Description --- --- --- width Numbers Largeur souhaitée de la vidéo (en pixels). height Numbers Hauteur recommandée pour la vidéo (en pixels).
Retours :

S'exécute lorsque les contraintes vidéo ont été correctement appliquées. Dans le cas contraire, une erreur est levée — par exemple, si l'éditeur ne publie pas de vidéo, si les dimensions ne sont pas valides ou si la résolution dépasse la résolution initiale.

setStyle(style, valeur) → {Éditeur}

Définit les propriétés qui déterminent l'apparence de certains contrôles de l'interface utilisateur de Publisher.

Vous pouvez transmettre soit un paramètre, soit deux paramètres à cette méthode.

Si vous passez un paramètre, style, il s'agit d'un objet qui présente les propriétés suivantes :

  • audioLevelDisplayMode (Chaîne) — Comment afficher l'indicateur de niveau audio. Les valeurs possibles sont : "auto" (l'icône s'affiche lorsque la vidéo est désactivée), "off" (l'indicateur n'apparaît pas), et "on" (l'indicateur est toujours affiché).
  • archiveStatusDisplayMode (Chaîne) — Comment afficher l'indicateur d'état d'archivage. Les valeurs possibles sont les suivantes : "auto" (l'indicateur s'affiche lorsque la session est en cours d'enregistrement), "off" (l'indicateur n'apparaît pas). Si vous désactivez l'indicateur d'affichage du statut d'archivage, vous pouvez afficher vos propres notifications dans l'interface utilisateur en fonction du archiveStarted et archiveStopped envoyés par l'objet Session.
  • 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 publishVideo(false) sur l'objet Publisher). Vous pouvez transmettre une URI http ou https pointant vers un fichier PNG, JPEG ou GIF non animé. Vous pouvez également utiliser la 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 Publisher.getImgData() méthode (par exemple, vous pourriez appeler myPublisher.setStyle("backgroundImageURI", myPublisher.getImgData())). Si l'URL ou les données de l'image ne sont pas valides, la propriété est ignorée (la tentative de définition de l'image échoue sans message d'erreur). L'arrière-plan actuel sera supprimé si aucune image n'est fournie et les initiales s'afficheront si elles ont été définies au préalable.
  • buttonDisplayMode (Chaîne) — Comment afficher les commandes du microphone. Les valeurs possibles sont les suivantes : "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 s'affichent pas), et "on" (les commandes sont toujours affichées).
  • nameDisplayMode (Chaîne) — Indique s'il faut afficher le nom du flux. Les valeurs possibles sont les suivantes : "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).

Par exemple, le code suivant transmet un paramètre à la méthode :

myPublisher.setStyle({nameDisplayMode: "off"});

Si vous passez deux paramètres, style et value, il s'agit de paires clé-valeur qui définissent une propriété du style d'affichage. Par exemple, le code suivant transmet deux valeurs de paramètre à la méthode :

myPublisher.setStyle("nameDisplayMode", "off");

Vous pouvez définir les paramètres initiaux lorsque vous appelez la fonction Session.publish() ou OT.initPublisher() méthode. Transmettez un style bien immobilier dans le cadre de la properties paramètre de la méthode.

L'objet OT déclenche un exception même si vous transmettez un style non valide à la méthode. Le code La propriété de l'objet ExceptionEvent est définie sur 1011.

Paramètres :
Nom Type Description
style Objet Soit un objet contenant les propriétés qui définissent le style, soit une chaîne de caractères définissant cette propriété de style unique à définir.
value Chaîne La valeur à définir pour le style a été transmis. Ne transmettez une valeur pour ce paramètre que si la valeur du style Le paramètre est une chaîne de caractères.

Voir : : - getStyle() - setStyle() - Session.publish() - OT.initPublisher()

Retours :

L'objet Publisher

setTargetScalabilityMode(scalabilityMode)

Définit le mode d'évolutivité cible (SVC - Scalable Video Coding) pour cet éditeur.

Le mode d'évolutivité détermine le nombre de couches spatiales (résolution) et temporelles (fréquence d'images) que WebRTC encode. Ce mode s'applique au chemin multimédia du Media Router.

Cette méthode peut être appelée à tout moment ; elle ne nécessite pas que la négociation du chemin de transmission soit terminée. Le mode sera appliqué dès que le chemin de transmission du routeur multimédia sera établi.

Si un codec non-SVC (VP8, H.264) est négocié sur le chemin multimédia du routeur multimédia, le mode applicable le plus proche est utilisé : le nombre de couches spatiales est fixé à 1, tout en conservant la dimension temporelle (par exemple : L2T2L1T2 lorsque le format VP8 est négocié).

Modes valides :

  • L1T1, L1T2, L1T3, L2T1, L2T2, L2T3, L3T1, L3T2, L3T3

Il s'agit d'une fonctionnalité en version bêta.

Paramètres :
Nom Type Description
scalabilityMode Chaîne L'identifiant du mode d'évolutivité cible (par exemple, "L1T3", "L3T3").

Voir : : - Publisher.getTargetScalabilityMode()

Lancers :

setVideoBitratePreset(preset)

Définit le débit binaire vidéo maximal pour l'éditeur sur l'un des préréglages suivants : « default », « bw_saver » ou « extra_bw_saver ». Pour plus de détails, consultez la Publisher Max Bitrate guide du développeur.

La configuration du débit binaire maximal est prise en charge dans les versions les plus récentes de tous les navigateurs compatibles.

Paramètres :
Nom Type Description
preset Chaîne Le préréglage à utiliser : soit « default », « bw_saver », soit « extra_bw_saver ».

Voir : : - Publisher.getVideoBitratePreset() - Publisher.setMaxVideoBitrate()

setVideoContentHint(videoContentHint) → {Promise.<void>}

Définit l'indicateur de contenu pour la piste vidéo du flux de l'éditeur. Cela permet aux navigateurs d'utiliser des méthodes d'encodage ou de traitement mieux adaptées au type de contenu.

Utilisez cette méthode pour modifier dynamiquement le contenu vidéo affiché. Définissez le contenu vidéo initial à afficher en configurant le videoContentHint propriété des options transmises à la fonction OT.initPublisher() méthode.

Chrome 60 et versions ultérieures, Safari 12.1 et versions ultérieures, Edge 79 et versions ultérieures, Opera 47 et versions ultérieures, les versions récentes de Samsung Internet, WebView sous Android 70 et versions ultérieures, ainsi que WebView sous iOS 12.2 et versions ultérieures prennent en charge les indications de contenu vidéo.

Paramètres :
Nom Type Description
videoContentHint Chaîne Vous pouvez définir cette option sur l'une des valeurs suivantes : - "" — Aucun indice n'est donné. - "motion" — La piste doit être traitée comme si elle contenait une vidéo dans laquelle le mouvement joue un rôle important. Par exemple, vous pouvez utiliser ce paramètre pour un flux de partage d'écran contenant de la vidéo. - "detail" — Il convient de traiter cette piste comme si les détails vidéo revêtaient une importance particulière. Vous pouvez, par exemple, utiliser ce paramètre pour un flux de partage d'écran contenant du texte, des dessins ou des illustrations au trait. - "text" — Il convient de considérer cette piste comme si les détails textuels revêtaient une importance particulière. Vous pouvez, par exemple, utiliser ce paramètre pour un flux de partage d'écran contenant du contenu textuel.

Voir : : - Publisher.getVideoContentHint() - OT.initPublisher()

Retours :

setVideoMediaProcessorConnector(mediaProcessorConnector) → {Promise}

Définit un MediaProcessorConnector pour la piste vidéo de l'éditeur. Un éditeur ne peut avoir qu'une seule piste vidéo. Connecteur de processeur de médias appliqué à un moment donné. Lorsque vous configurez un nouveau connecteur, le connecteur vidéo précédemment configuré est supprimé.

Cette méthode est incompatible avec la Publisher.applyVideoFilter() méthode. L'appel de cette méthode après Publisher.applyVideoFilter(filter) renvoie une promesse rejetée avec une erreur, avec le name propriété de l'ensemble d'erreurs définie sur 'OT_NOT_SUPPORTED'. Vous pouvez désactiver le filtre vidéo en appelant Publisher.clearVideoFilter().

Remarque : Les MediaProcessors ne sont pris en charge que dans les versions récentes de Chrome, Firefox, Electron, Opera, Edge, Samsung Internet, WebView Android, ainsi que dans les dernières versions de Safari (version 26 et plus) et de WebView iOS (version 26 et plus). Vous pouvez vérifier si le client prend en charge cette fonctionnalité en appelant la méthode OT.hasMediaProcessorSupport('vidéo') méthode.

Important : Les processeurs multimédias nécessitent une prise en charge adéquate par le processeur. Même dans les navigateurs pris en charge, les transformateurs peuvent ne pas fonctionner de manière stable lorsque des processus en arrière-plan limitent les ressources de traitement disponibles. Voir Exigences du client.

L'appel de cette méthode génère une erreur (la Promise renvoyée par la méthode est rejetée) dans les conditions suivantes :

  • Il n'y a pas de dispositifs d'entrée vidéo (caméras) disponibles.
  • Un filtre vidéo a déjà été appliqué via le Publisher.applyVideoFilter() méthode.
  • Une erreur s'est produite lors de l'acquisition de la vidéo à partir du périphérique d'entrée vidéo.
  • Une erreur s'est produite lors de la récupération de la piste traitée à partir du MediaProcessorConnector.

Vous pouvez effacer le connecteur actuel en appelant cette méthode avec null.

Pour plus d'informations, voir le Utilisation de la bibliothèque Vonage Media Processor guide du développeur.

Paramètres :
Nom Type Description
mediaProcessorConnector Connecteur de processeur de médias Une instance de MediaProcessorConnector. Voir la section Documentation de la bibliothèque Vonage Media Processor.

Voir : : - OT.hasMediaProcessorSupport('vidéo')

Retours :

Une promesse qui est résolue lorsque l'opération s'achève avec succès. En cas d'erreur, la promesse est rejetée et aucun connecteur n'est défini.

setVideoSource(videoSourceId) → {Promise}

Cette méthode permet de définir la source vidéo d'un éditeur utilisant une caméra. Indiquez l'identifiant de l'appareil correspondant à la nouvelle source vidéo.

Les cas suivants entraîneront des erreurs :

  • Si le videoSourceId Si le paramètre n'est pas une chaîne de caractères ou l'identifiant d'un périphérique d'entrée vidéo valide, la promesse sera rejetée avec une erreur indiquant que le name propriété définie sur 'OT_INVALID_VIDEO_SOURCE'.
  • Si l'éditeur n'utilise pas actuellement d'entrée caméra, la promesse sera rejetée avec une erreur indiquant que le name propriété définie sur 'OT_SET_VIDEO_SOURCE_FAILURE'.
Paramètres :
Nom Type Description
videoSourceId Chaîne L'identifiant d'un périphérique d'entrée vidéo (caméra).

Voir : : - OT.getDevices() - Publisher.getVideoSource() - Publisher.cycleVideo()

Retours :

Une promesse qui renvoie une valeur nulle lorsque l'opération s'achève avec succès. En cas d'erreur, la promesse est rejetée.

videoHeight() → {Number}

Renvoie la hauteur, en pixels, de la vidéo locale de l'éditeur, lue à partir du fichier local <video> élément. Il s'agit de la même valeur que stream.videoDimensions.height.

Retours :

La hauteur, en pixels, de la vidéo locale de l'éditeur.

videoWidth() → {Number}

Renvoie la largeur, en pixels, de la vidéo locale de l'éditeur, lue à partir du fichier local <video> élément. Il s'agit de la même valeur que stream.videoDimensions.width

Retours :

La largeur, en pixels, de la vidéo locale de l'éditeur.

Evénements

accès autorisé

Déclenché lorsque l'utilisateur a cliqué sur le bouton « Autoriser », accordant ainsi à l' application l'accès à la caméra et au microphone. L'objet Publisher dispose d'un accessAllowed propriété indiquant si l'utilisateur a autorisé l'accès à la caméra et au microphone.

Voir : : - Événement

accessDenied

Déclenché lorsque l'utilisateur a cliqué sur le bouton « Refuser », empêchant ainsi l' application d'accéder à la caméra et au microphone.

Cet événement est également déclenché si l'utilisateur retire les autorisations qu'il avait précédemment accordées.

Remarque : Sous macOS 10.15 et versions ultérieures (Catalina), pour publier un flux de partage d'écran, l'utilisateur doit autoriser le navigateur à accéder à l'écran dans les Préférences Système de macOS > Sécurité et confidentialité > Confidentialité > Enregistrement d'écran. Sinon, l'éditeur enverra un accessDenied événement.

Voir : : - Événement

accessDialogClosed

Envoyé lorsque la boîte de dialogue « Autoriser/Refuser » est fermée. (Il s'agit de la boîte de dialogue dans laquelle l' utilisateur peut autoriser l'application à accéder à la caméra et au microphone.)

Voir : : - Événement

accessDialogOpened

Envoyé lorsque la boîte de dialogue « Autoriser/Refuser » s'ouvre. (Il s'agit de la boîte de dialogue dans laquelle l'utilisateur peut autoriser l'application à accéder à la caméra et au microphone.)

Voir : : - Événement

audioInputDeviceChanged

Déclenché lorsque le périphérique d'entrée audio est modifié.

Voir : : - Événement - Événement « AudioInputDeviceChanged »

audioLevelUpdated

Envoyé périodiquement pour indiquer le niveau audio du lecteur. Cet événement est envoyé jusqu’à 60 fois par seconde, selon le navigateur. Le audioLevel propriété de l'événement : le niveau audio, compris entre 0 et 1,0. Voir Événement de mise à jour du niveau audio Pour plus d'informations.

L'exemple suivant permet de régler la valeur d'un élément « meter » qui affiche le volume de l' éditeur. Notez que le niveau audio est ajusté de manière logarithmique et qu'une moyenne mobile est appliquée :

var movingAvg = null;
publisher.on('audioLevelUpdated', function(event) {
  if (movingAvg === null || movingAvg <= event.audioLevel) {
    movingAvg = event.audioLevel;
  } else {
    movingAvg = 0.7 * movingAvg + 0.3 * event.audioLevel;
  }

  // 1.5 scaling to map the -30 - 0 dBm range to [0,1]
  var logLevel = (Math.log(movingAvg) / Math.LN10) / 1.5 + 1;
  logLevel = Math.min(Math.max(logLevel, 0), 1);
  document.getElementById('publisherMeter').value = logLevel;
});

Cet exemple illustre l'algorithme utilisé par l'indicateur de niveau audio par défaut affiché dans un Publisher « audio uniquement ».

Voir : : - Événement de mise à jour du niveau audio

détruit

Cet événement est déclenché lorsque l'élément « Publisher » est supprimé du DOM HTML. Lorsque cet événement est déclenché, vous pouvez choisir de modifier ou de supprimer les éléments du DOM HTML associés à l'éditeur.

mediaStopped

L'utilisateur qui publie le flux a cessé de partager un ou tous les types de médias (vidéo, audio et/ou écran). Cela peut se produire lorsqu'un utilisateur déconnecte une caméra ou un microphone utilisé comme source multimédia pour l'éditeur. Cela peut également se produire lorsqu'un utilisateur ferme une fenêtre alors que les sources vidéo et audio du flux sont des éléments MediaStreamTrack et que les pistes sont arrêtées ou détruites.

Voir : : - MediaStoppedEvent

mediaStreamAvailable

Envoyé dès que le MediaStream est disponible.

Voir : : - Événement

muteForced

Un modérateur a désactivé le son de ce client.

Voir : : - Événement - Session.forceMuteAll() - Session.forceMuteStream() - Couper le son des flux vidéo dans une session

networkConditionChanged

Envoyé lorsqu'un changement d'état du réseau est détecté pour l'éditeur.

Cet événement diffère de videoDisabled et videoEnabled événements, dans la mesure où il signale les changements d'état du réseau plutôt que les changements d'état de la piste vidéo de l'éditeur. Les applications peuvent utiliser cet événement pour réagir aux problèmes réseau, par exemple en mettant à jour l'interface utilisateur, en enregistrant des données de télémétrie ou en déclenchant un comportement adaptatif.

Les caractéristiques de cet événement sont les suivantes :

  • reason — Indique la cause de l'événement. Actuellement, cette valeur est toujours "networkConditionChanged"
  • statsContainer — Objet contenant un instantané complet des statistiques actuelles, structuré de la même manière que l'objet renvoyé par une getStats() invocation. Notez que pour un éditeur dans une session relayée, l'objet stats contient un connectionId et un subscriberId, car l'éditeur envoie un flux distinct à chaque abonné et les statistiques sont communiquées par abonné. Cela permet à l'utilisateur d'identifier quel abonné est susceptible de subir une dégradation du réseau. Dans les sessions relayées, seules les statistiques correspondant à l'abonné concerné sont incluses dans l'événement.

Voir : : - Événement

streamCreated

L'éditeur a commencé la diffusion en continu de la session.

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

streamDestroyed

L'éditeur a cessé la diffusion en continu vers la session. Par défaut, l'objet Publisher est supprimé du DOM HTML. L'objet Publisher 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 de l'objet événement dans l'écouteur d'événement, le comportement par défaut est désactivé, et vous pouvez, si vous le souhaitez, conserver l'éditeur pour le réutiliser ou le nettoyer à l'aide de votre propre code.

Voir : : - Événement de flux

videoDimensionsChanged

Envoyé lorsque l'éditeur local <video> L'élément détecte un changement de dimension. Lorsque l'éditeur est en cours de publication, cela met également à jour le stream.videoDimensions propriété. Exemples de facteurs pouvant entraîner un redimensionnement de l'élément vidéo local :

  • Quand stream.videoType est fixé à "screen" (partage d'écran) et que l'utilisateur redimensionne la fenêtre capturée.
  • Lorsque la vidéo est publiée à partir d'un appareil mobile et que l'utilisateur fait pivoter l'appareil, ce qui entraîne un changement d'orientation de la caméra.
  • Quand l'éditeur appelle Éditeur#setPreferredResolution, en modifiant la résolution de capture ciblée.

Cet objet d'événement possède un newValue propriété et un oldValue propriété, représentant les dimensions « nouvelle » et « ancienne » de la vidéo. Chacune d'entre elles possède une height propriété et un width propriété représentant la hauteur et la largeur, en pixels.

Voir : : - Événement « VideoDimensionsChanged »

vidéo désactivée

Envoyé lorsque la vidéo de l'éditeur est désactivée.

Avant d'envoyer cet événement, lorsque la qualité du flux de l'éditeur se détériore à un niveau suffisamment bas pour que le flux vidéo risque d'être désactivé, l'éditeur envoie un videoDisableWarning événement.

Si la connexion s'améliore et permet à nouveau la lecture de vidéos, l'objet Publisher déclenche un videoEnabled événement, et l'abonné recommence à recevoir la vidéo.

Par défaut, Publisher affiche un indicateur signalant que la vidéo est désactivée lorsqu'un videoDisabled L'événement associé à ce motif est déclenché et supprime l'indicateur lorsque le videoEnabled Un événement correspondant à ce motif est déclenché. Vous pouvez contrôler l'affichage de cette icône en configurant le videoDisabledDisplayMode avec le Publisher.setStyle() méthode ou en configurant le videoDisabledDisplayMode style propriété lors de l'initialisation du Publisher avec le OT.initPublisher() méthode.

Vous pouvez activer cette fonctionnalité de repli « audio uniquement » en configurant le paramètre publisher à la propriété true dans le audioFallback option transmise à la OT.initPublisher() méthode pour le client de publication. (Voir OT.initPublisher().)

Voir : : - Événement - videoDisableWarning événement - videoEnabled événement

videoDisableWarning

Envoyé lorsque l'éditeur constate une dégradation de la qualité du flux ; la vidéo sera désactivée si la qualité continue de se dégrader. Si la qualité continue de se dégrader, l'éditeur désactive la vidéo et envoie un videoDisabled événement.

Par défaut, Publisher affiche un indicateur d'avertissement signalant que la vidéo est désactivée lorsque cet événement est déclenché (et que la vidéo est désactivée). Vous pouvez contrôler l'affichage de cette icône en appelant la méthode setStyle() méthode de l'éditeur et la configuration de la videoDisabledDisplayMode propriété, ou vous pouvez définir la videoDisabledDisplayMode propriété lors de l'appel de la OT.initPublisher() méthode et en définissant le style propriété de la properties paramètre.

Voir : : - Événement - vidéo désactivée événement - videoDisableWarningLifted événement

videoDisableWarningLifted

Déclenché lorsque l'éditeur estime que la qualité du flux s'est améliorée au point que la désactivation de la vidéo ne présente plus de risque immédiat. Cet événement est déclenché après que l'objet Éditeur a déclenché un videoDisableWarning événement.

Voir : : - Événement - videoDisableWarning événement - vidéo désactivée événement

videoElementCreated

Déclenché lors de la création de l'élément vidéo de l'éditeur. Ajoutez un écouteur pour cet événement lorsque vous définissez le insertDefaultUI à l'option false dans l'appel à la OT.initPublisher() méthode. La méthode element La propriété de l'objet événement est une référence à l'éditeur video élément (ou, dans Internet Explorer, l'élément object élément contenant la vidéo). Ajoutez-le au DOM HTML pour afficher la vidéo. Lorsque vous définissez le insertDefaultUI option permettant de false, le video (ou object) n'est pas automatiquement inséré dans le DOM.

N'ajoutez un écouteur pour cet événement que si vous avez défini le insertDefaultUI option permettant de false. Si vous n'avez pas défini insertDefaultUI option permettant de false, ne déplacez pas le video (ou object) dans le DOM HTML. Cela entraîne la destruction de l'objet Publisher.

Voir : : - Événement de création d'un élément vidéo

videoEnabled

Déclenché lorsque l'éditeur reprend l'envoi de la vidéo à l'éditeur après que la vidéo ait été désactivée auparavant.

Voir : : - Événement - vidéo désactivée événement

videoQualityChanged

Envoyé lorsque l'éditeur détecte un changement significatif de la qualité vidéo, tel qu'une baisse de résolution ou une dégradation de la qualité due à la bande passante ou au processeur.

Cet événement diffère de videoDisabled et videoEnabled Événements liés à l'éditeur, dans la mesure où ils signalent des changements ayant une incidence sur la qualité vidéo. videoDisabled et videoEnabled indique uniquement que la piste vidéo de l'abonné a été activée ou désactivée (par exemple, à la suite d'une mise à jour des propriétés du flux ou d'un basculement audio). En revanche, cet événement fournit des informations de diagnostic sur les causes de la dégradation de la qualité — telles que les limitations du processeur ou de la bande passante — et peut également être déclenché même lorsque la vidéo reste activée.

Cet événement a pour objectif principal d'indiquer les causes des limitations de qualité. Il est possible que la résolution ou la couche vidéo change même lorsque la cause n'est pas explicitement un changement de résolution — par exemple, en raison de limitations du processeur. Veuillez vous reporter aux statistiques mises à jour fournies dans l’événement pour obtenir le contexte complet. Lorsqu’une cause de dégradation de la qualité précédemment active disparaît, l’événement est à nouveau déclenché avec "none" comme raison.

Les reason Cette propriété définit la raison du changement de qualité vidéo. Elle peut prendre l'une des valeurs suivantes :

  • "bandwidth" — Dégradation de la qualité due à une bande passante réseau insuffisante
  • "cpu" — Dégradation de la qualité due aux limitations du processeur de l'appareil client
  • "other" — Autres raisons non précisées
  • "codecChange" — Indique que le codec vidéo a changé
  • "resolutionChange" — Ce phénomène peut être dû à des contraintes de débit binaire, à l'adaptation de l'encodeur, à des modifications de la source vidéo (par exemple, changement de caméra ou de résolution d'entrée) ou à des modifications de configuration, et n'implique pas nécessairement une dégradation de la qualité.
  • "none" — Lorsqu’un motif de dégradation de la qualité précédemment actif est levé

Les statsContainer La propriété définit un objet contenant un instantané complet des statistiques actuelles, dont la structure est identique à celle de l'objet renvoyé par une getStats() invocation. Notez que pour un éditeur dans une session relayée, l'objet stats contient un connectionId et un subscriberId, car l' éditeur envoie un flux distinct à chaque abonné et les statistiques sont communiquées par abonné. Cela permet à l'utilisateur de déterminer quel abonné est susceptible de subir une dégradation de la qualité. Dans les sessions relayées, seules les statistiques correspondant à l'abonné concerné sont incluses dans l'événement.

Voir : : - Événement