Das Publisher-Objekt stellt den Mechanismus bereit, über den die Steuerung des veröffentlichten Streams erfolgt. Durch den Aufruf der OT.initPublisher() Methode Erstellt ein Publisher-Objekt.

Der folgende Code instanziiert eine Sitzung und veröffentlicht einen Audio-Video-Stream, sobald eine Verbindung zur Sitzung hergestellt wurde:

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

In diesem Beispiel wird ein Publisher-Objekt erstellt und dessen Video einem DOM-Element mit der ID publisherElement durch Aufruf der OT.initPublisher() Methode. Anschließend veröffentlicht sie einen Stream in die Sitzung, indem sie die publish() Methode des Session-Objekts.

Eigenschaften

Name Typ Beschreibung
accessAllowed Boolesche Ob der Benutzer den Zugriff auf die Kamera und das Mikrofon gewährt hat. Das Publisher-Objekt löst ein accessAllowed Ereignis, wenn der Benutzer den Zugriff gewährt. Das Publisher-Objekt löst ein accessDenied Ereignis, wenn der Benutzer den Zugriff verweigert.
element Element Das HTML-DOM-Element, das den Publisher enthält. (Anmerkung: wenn Sie die insertDefaultUI Option zu false im Aufruf von OT.initPublisherdie element Die Eigenschaft ist nicht definiert.)
id Zeichenfolge Die DOM-ID des Publishers.
stream Stream Die Stream Objekt, das dem Stream des Publishers entspricht.
session Sitzung Die Sitzung zu dem der Verlag gehört.

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

Methoden

Name Beschreibung
addEventListener(type, listener, context) Veraltet.
applyAudioFilter(audioFilter) → {Promise} Wendet einen Audiofilter für den Herausgeber an.
applyVideoFilter(videoFilter) → {Promise} Wendet einen Videofilter für den Publisher an.
clearAudioFilter() → {Promise} Entfernt den auf den Publisher angewendeten Audiofilter.
clearVideoFilter() → {Promise} Entfernt den Videofilter, der auf den Publisher angewendet wird.
cycleVideo() → {Promise} Wechselt die vom Publisher verwendete Videoeingangsquelle zur nächsten in der Liste der verfügbaren Geräte.
destroy() → {Publisher} Löscht das Publisher-Objekt und entfernt es aus dem HTML-DOM.
getAudioFilter() → {Object} Gibt den vom Publisher verwendeten Audiofilter zurück (oder null, wenn kein Audiofilter vorhanden ist).
getAudioSource() → {MediaStreamTrack} Gibt das „MediaStreamTrack“-Objekt zurück, das als Audio-Eingangsquelle für den Publisher verwendet wird.
getImgData() → {String} Gibt die Base-64-kodierte Zeichenfolge der PNG-Daten zurück, die das Publisher-Video darstellen.
getMaxVideoBitrate() → {Integer} Gibt die für den Publisher festgelegte benutzerdefinierte maximale Bitrate zurück.
getRtcStatsReport() → {Promise} Gibt ein Promise zurück, das im Erfolgsfall ein Array von Objekten zurückgibt, die RTCStatsReport-Eigenschaften für den veröffentlichten Stream enthalten.
getStats(completionHandler) → {Promise.<PublisherStatsArr>} Gibt Details zur Stream-Qualität des Publishers zurück, darunter Folgendes: - Die Gesamtzahl der verlorenen Audio- und Videopakete - Die Gesamtzahl der gesendeten Audio- und Videopakete - Die Gesamtzahl der gesendeten Audio- und Videobytes - Die aktuelle durchschnittliche Videobildrate Anhand dieser Statistiken können Sie die Qualität des Audio-Video-Streams des Publishers beurteilen.
getStyle() → {Object} Gibt ein Objekt zurück, dessen Eigenschaften die aktuellen Benutzeroberflächensteuerelemente des Publishers definieren.
`getTargetScalabilityMode() → {String undefined}` Gibt den Ziel-Skalierbarkeitsmodus zurück, der explizit über Verlag.
getVideoBitratePreset() → {String} Gibt die für den Publisher voreingestellte Bitrate zurück.
getVideoContentHint() → {String} Gibt den Inhaltshinweis für die Videospur zurück.
getVideoFilter() → {Object} Gibt den vom Publisher verwendeten Videofilter zurück.
getVideoSource() → {VideoSource} Gibt ein Objekt zurück, das Eigenschaften enthält, die die aktuelle Videoquelle des Herausgebers definieren.
off(type, handler, context) → {Object} Entfernt einen oder mehrere Ereignis-Handler.
on(type, handler, context) → {EventDispatcher} Fügt eine Ereignisbehandlungsfunktion für ein oder mehrere Ereignisse hinzu.
once(type, handler, context) → {Object} Fügt eine Ereignisbehandlungsfunktion für ein oder mehrere Ereignisse hinzu.
publishAudio(value) → {Publisher} Beginnt mit der Veröffentlichung von Audio (sofern dies derzeit nicht bereits geschieht), wenn die value ist true; beendet die Audioübertragung (sofern diese gerade stattfindet), wenn die value ist false.
publishCaptions(value) → {Promise.<void>} Beginnt mit der Veröffentlichung von Bildunterschriften (sofern diese derzeit nicht veröffentlicht werden), wenn die value ist true; stellt die Veröffentlichung von Bildunterschriften ein (sofern diese gerade veröffentlicht werden), wenn die value ist false.
publishVideo(value, callback) → {Publisher} Schaltet das Video für den Herausgeber ein oder aus.
removeEventListener(type, listener, context) Veraltet.
setAudioMediaProcessorConnector(mediaProcessorConnector) → {Promise} Legt einen „MediaProcessorConnector“ für die Audio-Spur des Publishers fest.
setAudioSource(audioSource) → {Promise} Wechselt die vom Publisher verwendete Audio-Eingangsquelle.
setMaxVideoBitrate(bitrateBps) Legt eine benutzerdefinierte maximale Video-Bitrate für den Publisher fest.
setPreferredFrameRate(frameRate) → {Promise} Legt die bevorzugte Bildfrequenz für Videos fest.
setPreferredResolution(preferredResolution) → {Promise} Legt die bevorzugte Videoauflösung fest.
setStyle(style, value) → {Publisher} Legt Eigenschaften fest, die das Erscheinungsbild einiger Steuerelemente der Benutzeroberfläche des Publishers bestimmen.
setTargetScalabilityMode(scalabilityMode) Legt den Ziel-Skalierbarkeitsmodus (SVC – Scalable Video Coding) für diesen Publisher fest.
setVideoBitratePreset(preset) Legt die maximale Video-Bitrate für den Publisher auf eine der folgenden Voreinstellungen fest: „default“, „bw_saver“ oder „extra_bw_saver“.
setVideoContentHint(videoContentHint) → {Promise.<void>} Legt den Inhaltshinweis für die Videospur des Streams des Herausgebers fest.
setVideoMediaProcessorConnector(mediaProcessorConnector) → {Promise} Legt einen „MediaProcessorConnector“ für die Videospur des Publishers fest.
setVideoSource(videoSourceId) → {Promise} Mit dieser Methode wird die Videoquelle für einen Publisher festgelegt, der eine Kamera verwendet.
videoHeight() → {Number} Gibt die Höhe des lokalen Videos des Herausgebers in Pixeln zurück, die aus der lokalen Datei gelesen wurde <video> Element.
videoWidth() → {Number} Gibt die Breite des lokalen Videos des Herausgebers in Pixeln zurück, die aus der lokalen Datei gelesen wurde <video> Element.

addEventListener(Typ, Listener, Kontext)

Parameter:
Name Typ Beschreibung
type Zeichenfolge Die Zeichenfolge, die die Art des Ereignisses angibt.
listener Funktion Die Funktion, die aufgerufen werden soll, wenn das Objekt das Ereignis auslöst.
context Objekt (Optional) Legt den Wert von this in der Ereignisbehandlungsfunktion.

Abgelehnt — Verwendung on() oder einmal() stattdessen.

Mit dieser Methode wird eine Methode als Ereignisbehandler für ein bestimmtes Ereignis registriert.

Wenn für ein Ereignis kein Handler registriert ist, wird das Ereignis lokal ignoriert. Wenn die Ereignis-Listener-Funktion nicht existiert, wird das Ereignis lokal ignoriert.

Löst eine Ausnahme aus, wenn die listener Der Name ist ungültig.

Siehe: : - on() - einmal() - Veranstaltungen

applyAudioFilter(audioFilter) → {Promise}

Wendet einen Audiofilter auf den Publisher an. In der aktuellen Version können Sie nur einen erweiterten Rauschunterdrückungsfilter anwenden. Auf einen Publisher können jeweils nur ein (oder kein) Filter angewendet werden. Wenn Sie einen neuen Filter festlegen, wird jeder zuvor festgelegte Filter entfernt.

Diese Methode ist nicht kompatibel mit der Publisher.setAudioMediaProcessorConnector() Methode. Der Aufruf dieser Methode nach Publisher.setAudioMediaProccessorConnector(connector) gibt ein Promise zurück, das mit einem Fehler abgelehnt wird, wobei das name Eigenschaft des Fehlers auf 'OT_NOT_SUPPORTED'. Sie können den Konnektor entfernen, indem Sie Publisher.setAudioMediaProccessorConnector(null).

Anmerkung: Audiofilter werden nur in neueren Versionen von Chrome, Electron, Opera, Edge, Samsung Internet und WebView für Android unterstützt. In anderen (nicht auf Chromium basierenden) Browsern oder unter iOS werden sie nicht unterstützt. Sie können überprüfen, ob der Client diese Funktion unterstützt, indem Sie die OT.hasMediaProcessorSupport('audio') Methode.

Das ist wichtig: Audiofilter erfordern eine ausreichende Prozessorunterstützung. Selbst in unterstützten Browsern sind Transformatoren möglicherweise nicht stabil, wenn Hintergrundprozesse die verfügbaren Rechenressourcen einschränken. Siehe Anforderungen des Kunden.

Der Aufruf dieser Methode führt unter den folgenden Bedingungen zu einem Fehler (das von der Methode zurückgegebene Promise wird abgelehnt): unter den folgenden Bedingungen:

  • Der Browser unterstützt diese Methode nicht.
  • Ein benutzerdefinierter Filter wird bereits über die Publisher.setAudioMediaProcessorConnector() Methode.
  • Beim Anwenden des Transformationsfilters ist ein Fehler aufgetreten.

Sie können den anfänglichen Audiofilter auch festlegen, indem Sie einen audioFilter Option beim Aufruf OT.initPublisher().

Parameter:
Name Typ Beschreibung
audioFilter Objekt Ein Objekt, das den anzuwendenden Audiofilter definiert. Folgende Filter werden unterstützt: - Erweiterter Filter zur Rauschunterdrückung - Stellen Sie die type Eigenschaft des Objekts zu "advancedNoiseSuppression".

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

Rückgabe:

Ein Promise, das erfüllt wird, wenn der Vorgang erfolgreich abgeschlossen wurde. Tritt ein Fehler auf, wird das Promise abgelehnt und es wird kein neuer Videofilter festgelegt.

applyVideoFilter(videoFilter) → {Promise}

Wendet einen Videofilter auf den Publisher an. Sie können einen Filter zur Hintergrundunschärfe anwenden. Auf einen Publisher kann jeweils nur ein (oder kein) Filter angewendet werden. Wenn Sie einen neuen Filter festlegen, wird der zuvor festgelegte Filter entfernt.

Diese Methode ist nicht kompatibel mit der Publisher.setVideoMediaProcessorConnector() Methode. Der Aufruf dieser Methode nach Publisher.setVideoMediaProcessorConnector(connector) gibt ein Promise zurück, das mit einem Fehler abgelehnt wird, wobei das name Eigenschaft des Fehlers auf 'OT_NOT_SUPPORTED'. Sie können den Konnektor entfernen, indem Sie Publisher.setVideoMediaProcessorConnector(null).

Anmerkung: Videofilter werden nur in neueren Versionen von Chrome, Firefox, Electron, Opera, Edge, Samsung Internet, WebView für Android sowie in den neuesten Versionen von Safari (Version 26+) und iOS WebView (Version 26+) unterstützt. Sie können überprüfen, ob der Client diese Funktion unterstützt, indem Sie die OT.hasMediaProcessorSupport('video') Methode.

Das ist wichtig: Videofilter erfordern eine ausreichende Prozessorunterstützung. Selbst in unterstützten Browsern sind Transformatoren unter Umständen nicht stabil, wenn Hintergrundprozesse die verfügbaren Rechenressourcen einschränken. Siehe Anforderungen des Kunden.

Der Aufruf dieser Methode führt unter den folgenden Bedingungen zu einem Fehler (das von der Methode zurückgegebene Promise wird abgelehnt): unter den folgenden Bedingungen:

  • Der Browser unterstützt diese Methode nicht.
  • Der Herausgeber verwendet keine unterstützte Videoquelle. (Die videoSource Option des OT.initPublisher() Die Methode wurde auf null, false, oder "screen").
  • Ein benutzerdefinierter Filter wird bereits über die Publisher.setVideoMediaProcessorConnector() Methode.
  • Es sind keine Videoeingabegeräte (Kameras) vorhanden.
  • Es ist ein Fehler bei der Erfassung des Videos vom Videoeingabegerät aufgetreten.
  • Beim Anwenden des Transformationsfilters ist ein Fehler aufgetreten.

Sie können auch den anfänglichen Videofilter festlegen, indem Sie einen videoFilter Option beim Aufruf OT.initPublisher().

Parameter:
Name Typ Beschreibung
videoFilter Objekt Ein Objekt, das den anzuwendenden Videofilter definiert. Die folgenden Filter werden unterstützt: - Filter zur Hintergrundunschärfe: - Stellen Sie die type Eigenschaft des Objekts zu "backgroundBlur". Ein Filterobjekt für die Hintergrundunschärfe enthält ein zusätzliches blurStrength Eigenschaft, die den Unschärferadius festlegt und optional ist. Setzen Sie diesen Wert entweder auf "low" oder "high" (Standard). - Filter zum Ersetzen des Hintergrunds - Stellen Sie die type Eigenschaft des Objekts zu "backgroundReplacement". Ein Filterobjekt zum Ersetzen des Hintergrunds enthält ein zusätzliches backgroundImgUrl Eigenschaft, die die URL des zu verwendenden Hintergrundbildes definiert. Ebenfalls zulässig sind Bild-BLOBs (eine Base64-kodierte Zeichenfolge mit Bilddaten). Die folgenden Bildformate werden unterstützt: BMP, PNG, JPEG und GIF. Das Hintergrundbild wird an die Abmessungen des veröffentlichten Videos angepasst. Um optimale Ergebnisse zu erzielen, verwenden Sie ein Bild, das dieselben Abmessungen (oder zumindest dasselbe Seitenverhältnis) wie das veröffentlichte Video hat. Legen Sie die mirror Option für false beim Aufruf der OT.initPublisher() Methode, um das Hintergrundbild auf der Seite des Herausgebers in der richtigen Ausrichtung (nicht gespiegelt) anzuzeigen.

Siehe: : - OT.hasMediaProcessorSupport('video') - Publisher.getVideoFilter() - Publisher.clearVideoFilter()

Rückgabe:

Ein Promise, das erfüllt wird, wenn der Vorgang erfolgreich abgeschlossen wurde. Tritt ein Fehler auf, wird das Promise abgelehnt und es wird kein neuer Videofilter festgelegt.

clearAudioFilter() → {Promise}

Entfernt den auf den Publisher angewendeten Audiofilter.

Dies führt zu einem Fehler (das von der Methode zurückgegebene Promise wird abgelehnt), wenn der Audiofilter nicht gestoppt werden konnte.

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

Rückgabe:

Ein Promise, das erfüllt wird, wenn der Vorgang erfolgreich abgeschlossen wurde. Tritt ein Fehler auf, wird das Promise abgelehnt.

clearVideoFilter() → {Promise}

Entfernt den Videofilter, der auf den Publisher angewendet wird.

Dies führt zu einem Fehler (das von der Methode zurückgegebene Promise wird abgelehnt), wenn der Videofilter nicht gestoppt werden konnte.

Siehe: : - OT.hasMediaProcessorSupport('video') - Publisher.applyVideoFilter() - Publisher.getVideoFilter()

Rückgabe:

Ein Promise, das erfüllt wird, wenn der Vorgang erfolgreich abgeschlossen wurde. Tritt ein Fehler auf, wird das Promise abgelehnt.

cycleVideo() → {Promise}

Wechselt die vom Publisher verwendete Videoeingangsquelle zur nächsten in der Liste der verfügbaren Geräte.

Dies führt unter den folgenden Bedingungen zu einem Fehler (das von der Methode zurückgegebene Promise wird abgelehnt):

  • Der Benutzer hat den Zugriff auf das Videoeingabegerät verweigert.
  • Der Herausgeber verwendet keine Videokamera als Quelle. (Der videoSource Option des OT.initPublisher() Die Methode wurde auf null, false, ein MediaStreamTrack-Objekt oder "screen").
  • Es sind keine Videoeingabegeräte (Kameras) vorhanden.
  • Es ist ein Fehler bei der Erfassung des Videos vom Videoeingabegerät aufgetreten.

Siehe: : - Publisher.setVideoSource()

Rückgabe:

Ein „Promise“, das ausgewertet wird, sobald der Vorgang erfolgreich abgeschlossen ist. Das „Promise“ wird mit einem Objekt ausgewertet, das ein deviceId auf die Geräte-ID der verwendeten Kamera gesetzt:

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

Tritt ein Fehler auf, wird das Promise abgelehnt.

destroy() → {Herausgeber}

Löscht das Publisher-Objekt und entfernt es aus dem HTML-DOM.

Das Publisher-Objekt versendet eine destroyed Ereignis, wenn das DOM- Element entfernt wird.

Rückgabe:

Der Verlag.

getAudioFilter() → {Object}

Gibt den vom Publisher verwendeten Audiofilter zurück (oder null, wenn kein Audiofilter vorhanden ist).

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

Rückgabe:

Der vom Herausgeber verwendete Audiofilter. Überprüfen Sie die type Eigenschaft des Objekts, um den Typ des Audiofilters anzuzeigen. Derzeit wird nur der erweiterte Rauschunterdrückungsfilter unterstützt, und der type Eigenschaft wird auf "advancedNoiseSuppression".

getAudioSource() → {MediaStreamTrack}

Gibt das MediaStreamTrack-Objekt zurück, das als Audio-Eingangsquelle für den Publisher verwendet wird. Wenn der Publisher keine Audioquelle hat, gibt diese Methode null zurück.

Siehe: : - Publisher.setAudioSource()

Rückgabe:

Die Audioquelle für den Herausgeber (oder „null“, falls keine vorhanden ist).

getImgData() → {String}

Gibt die Base-64-kodierte Zeichenfolge der PNG-Daten zurück, die das Publisher-Video darstellen.

Sie können die Zeichenfolge als Wert für ein Daten-URL-Schema verwenden, das an den Parameter „src“ einer Bilddatei übergeben wird, wie im folgenden Beispiel gezeigt:

 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);
Rückgabe:

Die Base-64-kodierte Zeichenkette. Gibt eine leere Zeichenkette zurück, wenn kein Video vorhanden ist.

getMaxVideoBitrate() → {Integer}

Gibt die für den Publisher festgelegte benutzerdefinierte maximale Bitrate zurück.

Siehe: : - Publisher.setMaxVideoBitrate() - Herausgeber Maximale Bitrate

Rückgabe:

Einer der folgenden Werte: 0 oder eine beliebige ganze Zahl zwischen 5.000 und 10.000.000.

getRtcStatsReport() → {Promise}

Gibt ein Promise zurück, das bei erfolgreichem Abschluss ein Array von Objekten zurückgibt, die RTCStatsReport-Eigenschaften für den veröffentlichten Stream enthalten. (Siehe RTCStatsReport.)

Für einen Verleger in einer gerouteten Sitzung (eine, die die Vonage Video API Media Router), enthält dieses Array ein Objekt, das die Statistiken für den einzelnen Audio-Medienstream definiert, der an den Vonage Video API Media Router gesendet wird. Bei einer weitergeleiteten Sitzung enthält das Array ein Objekt für jeden Teilnehmer des veröffentlichten Streams. Jedes Objekt im Array enthält ein rtcStatsReport Eigenschaft, die ein RTCStatsReport-Objekt ist.

Zudem enthält bei einem Publisher in einer weitergeleiteten Sitzung jedes Objekt im Array die folgenden beiden Eigenschaften:

  • connectionId (Zeichenkette) — Die eindeutige ID der Verbindung des Clients, die mit der id Eigenschaft der connection Eigenschaft des Verbindung erstellt Ereignis, das das für den Remote-Client versendete Session-Objekt ausgelöst hat.
  • subscriberId (Zeichenkette) — Die eindeutige ID des Abonnenten, die mit der id Eigenschaft des „Subscriber“-Objekts in der App des abonnierenden Clients.

Diese beiden Eigenschaften sind für einen Verleger in einer gerouteten Sitzung nicht definiert.

Die Zusage wird unter den folgenden Bedingungen abgelehnt:

Siehe: : - Subscriber.getRtcStatsReport()

Rückgabe:

Ein Promise, das erfüllt wird, wenn der Vorgang erfolgreich abgeschlossen wurde. Tritt ein Fehler auf, wird das Promise abgelehnt.

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

Gibt Informationen zur Stream-Qualität des Anbieters zurück, darunter Folgendes:

  • Die Gesamtzahl der verlorenen Audio- und Videopakete
  • Die Gesamtzahl der gesendeten Audio- und Videopakete
  • Die Gesamtzahl der gesendeten Audio- und Videobytes
  • Die aktuelle durchschnittliche Videobildrate

Anhand dieser Kennzahlen können Sie die Qualität des Audio-Video-Streams des Anbieters beurteilen.

Parameter:
Name Typ Beschreibung
completionHandler Funktion (Optional) Eine Funktion, die die folgenden Parameter entgegennimmt: - error (Fehler) — Nach erfolgreichem Abschluss der Methode ist dieser Wert undefiniert. Es tritt ein Fehler auf, wenn der Publisher nicht mit einer Sitzung verbunden ist oder wenn er keine Audio- oder Videodaten überträgt. - statsArray (Array) — Ein Array von Objekten, das die aktuellen Audio- und Videostatistiken für den Publisher definiert. Für einen Publisher in einer gerouteten Sitzung (d. h. einer, die die Vonage Video API Media Router), enthält dieses Array ein Objekt, das die Statistiken für den einzelnen Audio-Medienstream definiert, der an den Vonage Video API Media Router gesendet wird. Bei einer weitergeleiteten Sitzung enthält das Array ein Objekt für jeden Teilnehmer des veröffentlichten Streams. Jedes Objekt im Array enthält ein stats Eigenschaft, die die folgenden Eigenschaften umfasst: - audio.bytesSent (Zahl) — Die Gesamtzahl der Audio-Bytes, die an den Teilnehmer (oder an den Vonage Video API Media Router) gesendet wurden - audio.packetsLost (Anzahl) — Die Gesamtzahl der Audiopakete, die den Teilnehmer (bzw. den Vonage Video API Media Router) nicht erreicht haben - audio.packetsSent (Zahl) — Die Gesamtzahl der an den Teilnehmer (oder an den Vonage Video API Media Router) gesendeten Audiopakete - timestamp (Numbers) — Der Zeitstempel in Millisekunden seit der Unix-Epoche, zu dem diese Statistiken erfasst wurden - video.bytesSent (Zahl) — Die Gesamtzahl der an den Teilnehmer (oder an den Vonage Video API Media Router) gesendeten Videobyte - video.packetsLost (Anzahl) — Die Gesamtzahl der Videopakete, die den Teilnehmer (oder den Vonage Video API Media Router) nicht erreicht haben - video.packetsSent (Zahl) — Die Gesamtzahl der an den Teilnehmer gesendeten Videopakete - video.frameRate (Zahl) — Die aktuelle durchschnittliche Bildrate des Videos. Diese Eigenschaft ist veraltet und wird in Zukunft entfernt. Bitte verwenden Sie stattdessen die encodedFrameRate Eigenschaft in den verschiedenen Ebenen. - video.layers (Array) — Eine Liste der aktiven Videokodierungs-Ebenen, sortiert von der höchsten zur niedrigsten Auflösung. Jedes Ebenenobjekt enthält: - width (Numbers) — Die Breite der Videoauflösung für diese Ebene in Pixeln - height (Numbers) — Die Höhe der Videoauflösung für diese Ebene in Pixeln - encodedFrameRate (Zahl) — Die Bildrate für diese Ebene in Bildern pro Sekunde - bitrate (Zahl) — Die von dieser Schicht verwendete Bitrate in Bit pro Sekunde - totalBitrate (Zahl) — Die von dieser Schicht genutzte Gesamtbitrate in Bit pro Sekunde. Darin enthalten sind RTP-Header, Fülldaten und Nutzdaten - scalabilityMode (Zahl) — Eine Zeichenfolge, die die Skalierbarkeitskonfiguration beschreibt (z. B. "L1T3" (für eine räumliche und drei zeitliche Ebenen). Dies gibt an, ob Simulcast oder SVC verwendet wird - codec (Zahl) — Der von dieser Schicht verwendete Codec - qualityLimitationReason (Zahl) — (Optional) Eine Zeichenfolge, die angibt, warum die Videoqualität des Anbieters möglicherweise beeinträchtigt wurde. Mögliche Werte: - "bandwidth" — Qualitätsverlust aufgrund unzureichender Netzwerkbandbreite - "cpu" — Qualitätsverlust aufgrund von CPU-Einschränkungen auf dem Client-Gerät - "other" — Sonstige, nicht näher bezeichnete Gründe - transportStats (Objekt) — Diese Eigenschaft ist veraltet und wird in Zukunft entfernt. Bitte verwenden Sie stattdessen mediaLink.transport. - mediaLink.transport.connectionEstimatedBandwidth (Zahl) — Die geschätzte verfügbare Bandbreite der Verbindung in Bit pro Sekunde (bps) - mediaLink.transport.networkCondition (Zeichenkette) — Aktueller Status der Netzwerkverbindung. Mögliche Werte sind: unknown, critical, warning, fair, good und excellent. - mediaLink.transport.networkConditionReason (Zeichenkette) — Hauptgrund für die Beeinträchtigung der Netzwerkbedingungen. Mögliche Werte sind: none, unknown, bandwidth und packetLoss. Zudem enthält bei einem Publisher in einer weitergeleiteten Sitzung jedes Objekt im Array die folgenden beiden Eigenschaften: - connectionId (Zeichenkette) — Die eindeutige ID der Verbindung des Clients, die mit der id Eigenschaft der connection Eigenschaft des Verbindung erstellt Fall, dass das Session-Objekt für den Remote-Client versendet wurde. - subscriberId (Zeichenkette) — Die eindeutige ID des Abonnenten, die mit der id Eigenschaft des „Subscriber“-Objekts in der App des abonnierenden Clients. Diese beiden Eigenschaften sind für einen Publisher in einer weitergeleiteten Sitzung nicht definiert.

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

Rückgabe:

getStyle() → {Object}

Gibt ein Objekt zurück, dessen Eigenschaften die aktuellen Benutzeroberflächenelemente des Publishers definieren. Sie können die Eigenschaften dieses Objekts ändern und das Objekt an die setStyle() Methode des Publisher-Objekts. (Siehe die Dokumentation zu setStyle() (um die Stile anzuzeigen, die dieses Objekt definieren.)

Siehe: : - setStyle()

Rückgabe:

Das Objekt, das die Stile des Publishers definiert.

getTargetScalabilityMode() → {String|undefined}

Gibt den Zielskalierbarkeitsmodus zurück, der explizit über Publisher.setTargetScalabilityMode(). Gibt den zuletzt an den Setter übergebenen Wert zurück oder undefined wenn der Setter noch nie aufgerufen wurde. Dies spiegelt die Absicht des Benutzers wider, nicht den tatsächlich angewendeten Modus (der aufgrund eines codec-abhängigen Fallbacks abweichen kann).

Dies ist eine Beta-Funktion.

Siehe: : - Publisher.setTargetScalabilityMode()

Rückgabe:

Der vom Aufrufer festgelegte Zielskalierbarkeitsmodus, oder undefined sofern nicht ausdrücklich festgelegt.

getVideoBitratePreset() → {String}

Gibt die für den Publisher voreingestellte Bitrate zurück.

Siehe: : - Publisher.setVideoBitratePreset() - Herausgeber Maximale Bitrate

Rückgabe:

Einer der folgenden Werte: „custom“, „extra_bw_saver“, „bw_saver“ oder „default“

getVideoContentHint() → {String}

Gibt den Inhaltshinweis für die Videospur zurück.

Siehe: : - Publisher.setVideoContentHint()

Rückgabe:

Einer der folgenden Werte: "", "motion", "detail, oder "text".

getVideoFilter() → {Object}

Gibt den vom Publisher verwendeten Videofilter zurück.

Siehe: : - OT.hasMediaProcessorSupport('video') - Publisher.applyVideoFilter() - Publisher.clearVideoFilter()

Rückgabe:

Der Videofilter, der auf die vom Herausgeber verwendete Videoeingangsquelle angewendet wird. Überprüfen Sie die type Eigenschaft des Objekts, um den Typ des Videofilters anzuzeigen. Die folgenden Filter werden unterstützt:

  • Filter zur Hintergrundunschärfe - Die type Die Eigenschaft des Objekts ist auf "backgroundBlur". Ein Filterobjekt für die Hintergrundunschärfe enthält ein zusätzliches blurStrength Eigenschaft, die den Unschärferadius definiert und entweder auf "low" oder "high".
  • Filter zum Ersetzen des Hintergrunds - Die type Die Eigenschaft „type“ des Objekts ist auf "backgroundReplacement". Ein Filterobjekt zum Ersetzen des Hintergrunds enthält ein zusätzliches backgroundImgUrl Eigenschaft, die die URL des zu verwendenden Hintergrundbildes angibt.

getVideoSource() → {VideoSource}

Gibt ein Objekt zurück, das Eigenschaften enthält, die die aktuelle Videoquelle des Herausgebers definieren.

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

Rückgabe:

Das Rückgabeobjekt verfügt über die folgenden Eigenschaften:

  • deviceId (Zeichenkette | null) — Die Geräte-ID.
  • type (Zeichenkette | null) — Dieser Wert wird auf „camera“ (für ein Video mit Kamerabild), „screen“ (für ein Video mit Bildschirmfreigabe) oder „custom“ (für ein Video mit einer MediaStreamTrack-Quelle) gesetzt.
  • track (MediaStreamTrack | null) — Der MediaStreamTrack für das Video.

Alle nicht zutreffenden Eigenschaften werden auf null gesetzt.

off(Typ, Handler, Kontext) → {Object}

Entfernt einen oder mehrere Ereignis-Handler.

Wenn Sie einen Ereignisnamen und eine Handler-Methode übergeben, wird der Handler für dieses Ereignis entfernt:

obj.off("eventName", eventHandler);

Wenn Sie mehrere Ereignisnamen und eine Handler-Methode übergeben, wird der Handler für diese Ereignisse entfernt:

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

Wenn Sie einen Ereignisnamen (oder mehrere) übergeben und nein Handler-Methode werden alle Handler für diese Ereignisse entfernt:

obj.off("event1Name event2Name");

Wenn Sie keine Argumente übergeben, alle Ereignisbehandler werden für alle Ereignisse entfernt, die von dem Objekt ausgelöst werden:

obj.off();

Die Methode unterstützt auch eine alternative Syntax, bei der der erste Parameter ein Objekt ist, das aus einer Hash-Map mit Ereignisnamen und Handler-Funktionen besteht, und der zweite Parameter (optional) den Kontext für diesen in jedem Handler darstellt:

obj.off(
   {
      eventName1: event1Handler,
      eventName2: event2Handler
   });
Parameter:
Name Typ Beschreibung
type Zeichenfolge (Optional) Die Zeichenfolge, die den Ereignistyp angibt. Sie können ein Leerzeichen verwenden, um mehrere Ereignisse anzugeben, z. B. „accessAllowed accessDenied accessDialogClosed“. Wenn Sie keine type Wert (oder andere Argumente) werden alle Ereignisbehandler für das Objekt entfernt.
handler Funktion (Optional) Die zu entfernende Ereignisbehandlungsfunktion. Der Handler muss dasselbe Funktionsobjekt sein, das an on(). Seien Sie vorsichtig mit Hilfsfunktionen wie bind() die beim Aufruf eine neue Funktion zurückgeben. Wenn Sie keine handler, werden alle Ereignisbehandler für das angegebene Ereignis entfernt type.
context Objekt (Optional) Wenn Sie einen context, wird der Ereignis-Handler für alle angegebenen Ereignisse und Handler entfernt, die den angegebenen Kontext verwenden. (Der Kontext muss mit dem Kontext übereinstimmen, der an on().)

Siehe: : - on() - einmal() - Veranstaltungen

Rückgabe:

Das Objekt, das das Ereignis ausgelöst hat.

on(Typ, Handler, Kontext) → {EventDispatcher}

Fügt eine Ereignisbehandlungsfunktion für ein oder mehrere Ereignisse hinzu.

Der folgende Code fügt einen Ereignis-Handler für ein Ereignis hinzu:

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

Wenn Sie mehrere Ereignisnamen und eine Handler-Methode übergeben, wird der Handler für jedes dieser Ereignisse registriert:

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

Sie können auch ein drittes Argument übergeben context Parameter (der optional ist), um den Wert von this in der Handler-Methode:

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

Die Methode unterstützt auch eine alternative Syntax, bei der der erste Parameter ein Objekt ist, das eine Hash-Map aus Ereignisnamen und Handler-Funktionen darstellt, und der zweite Parameter (optional) den Kontext für diesen in jedem Handler darstellt:

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

Wenn Sie für ein Ereignis keinen Handler hinzufügen, wird das Ereignis lokal ignoriert.

Parameter:
Name Typ Beschreibung
type Zeichenfolge Die Zeichenfolge, die den Ereignistyp angibt. In dieser Zeichenfolge können Sie mehrere Ereignisnamen angeben, die durch ein Leerzeichen voneinander getrennt sind. Der Ereignis-Handler verarbeitet jedes dieser Ereignisse.
handler Funktion Die Handler-Funktion zur Verarbeitung des Ereignisses. Diese Funktion nimmt das Ereignisobjekt als Parameter entgegen.
context Objekt (Optional) Legt den Wert von this in der Ereignisbehandlungsfunktion.

Siehe: : - off() - einmal() - Veranstaltungen

Rückgabe:

Das EventDispatcher-Objekt.

once(Typ, Handler, Kontext) → {Object}

Fügt eine Ereignisbehandlungsfunktion für ein oder mehrere Ereignisse hinzu. Sobald der Handler aufgerufen wird, wird die angegebene Handler-Methode als Handler für dieses Ereignis entfernt. (Wenn Sie die on() Methode zum Hinzufügen eines Ereignis-Handlers; der Handler lautet nicht wird beim Aufruf entfernt.) Das once() Die Methode entspricht dem Aufruf der on() Methode und Aufruf off() beim ersten Aufruf des Handlers.

Der folgende Code fügt einen einmaligen Ereignis-Handler für ein Ereignis hinzu:

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

Wenn Sie mehrere Ereignisnamen und eine Handler-Methode übergeben, wird der Handler für jedes dieser Ereignisse registriert:

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

Sie können auch ein drittes Argument übergeben context Parameter (der optional ist), um den Wert von this in der Handler-Methode:

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

Die Methode unterstützt außerdem eine alternative Syntax, bei der der erste Parameter ein Objekt ist, das aus einer Hash-Map mit Ereignisnamen und Handler-Funktionen besteht, und der zweite Parameter (optional) den Kontext für diesen Parameter in jedem Handler darstellt:

obj.once(
   {
      eventName1: function (event) {
                 // This is the event handler for eventName1.
          },
      eventName2:  function (event) {
                 // This is the event handler for eventName1.
          }
   },
   obj);
Parameter:
Name Typ Beschreibung
type Zeichenfolge Die Zeichenfolge, die den Ereignistyp angibt. In dieser Zeichenfolge können Sie mehrere Ereignisnamen angeben, die durch ein Leerzeichen voneinander getrennt sind. Der Ereignis-Handler verarbeitet das erste Auftreten der Ereignisse. Nach dem ersten Ereignis wird der Handler (für alle angegebenen Ereignisse) entfernt.
handler Funktion Die Handler-Funktion zur Verarbeitung des Ereignisses. Diese Funktion nimmt das Ereignisobjekt als Parameter entgegen.
context Objekt (Optional) Legt den Wert von this in der Ereignisbehandlungsfunktion.

Siehe: : - on() - off() - Veranstaltungen

Rückgabe:

Das Objekt, das das Ereignis ausgelöst hat.

publishAudio(Wert) → {Herausgeber}

Beginnt mit der Veröffentlichung von Audio (sofern dies derzeit nicht geschieht), wenn die value ist true; beendet die Audioübertragung (sofern diese gerade läuft), wenn die value ist false.

Parameter:
Name Typ Beschreibung
value Boolesche Ob man mit der Veröffentlichung von Audio beginnen soll (true) oder nicht (false).

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

Rückgabe:

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

Beginnt mit der Veröffentlichung von Bildunterschriften (sofern diese derzeit nicht veröffentlicht werden), wenn die value ist true; beendet die Veröffentlichung von Bildunterschriften (sofern diese gerade veröffentlicht werden), wenn die value ist false.

Anmerkung: Es werden keine Untertitel veröffentlicht, wenn der Herausgeber über keine Audioquelle verfügt.

Weitere Informationen finden Sie in der Live-Unterschriften Leitfaden für Entwickler.

Parameter:
Name Typ Beschreibung
value Boolesche Ob mit der Veröffentlichung von Bildunterschriften begonnen werden soll (true) oder nicht (false).

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

Rückgabe:

publishVideo(value, callback) → {Herausgeber}

Schaltet das Video für den Publisher ein oder aus. Dies bewirkt, dass das Video veröffentlicht wird (sofern es derzeit nicht veröffentlicht wird, der Client verbunden ist und der Publisher gerade veröffentlicht), wenn die value ist true; die Veröffentlichung des Videos wird beendet (sofern es gerade veröffentlicht wird), wenn die value ist false.

Anmerkung: Das Verhalten von publishVideo hängt davon ab, ob der Publisher derzeit verbunden ist und Daten veröffentlicht:

  • Aufruf von publishVideo(true) Wenn der Publisher nicht mit einer Sitzung verbunden ist, führt dies dazu, dass der Publisher Videos lokal aufzeichnet und wiedergibt, diese jedoch nicht streamt.
  • Aufruf von publishVideo(false) Wenn der Publisher nicht mit einer Sitzung verbunden ist, stellt der Publisher die lokale Videoaufzeichnung ein. Es wird kein Video gestreamt.
  • Aufruf von publishVideo(true) Wenn der Publisher mit einer Sitzung verbunden ist, aber gerade keine Inhalte veröffentlicht, werden Videos lokal aufgezeichnet und wiedergegeben, jedoch nicht gestreamt.
  • Aufruf von publishVideo(false) Wenn der Publisher mit einer Sitzung verbunden ist, aber derzeit keine Übertragung durchführt, stellt der Publisher die lokale Videoaufzeichnung ein. Es wird kein Video gestreamt.
  • Aufruf von publishVideo(true) Wenn der Publisher sowohl mit einer Sitzung verbunden ist als auch gerade veröffentlicht, führt dies dazu, dass der Publisher Videos lokal aufzeichnet und rendert sowie Videos streamt.
  • Aufruf von publishVideo(false) Wenn der Publisher sowohl mit einer Sitzung verbunden ist als auch gerade veröffentlicht, führt dies dazu, dass der Publisher die Videoaufnahme beendet und leere Videobilder überträgt.
Parameter:
Name Typ Beschreibung
value Boolesche Ob man mit der Veröffentlichung von Videos beginnen soll (true) oder nicht (false).
callback Funktion (Optional) Eine Funktion, die ein Error Parameter. Nach erfolgreichem Abschluss der Methode wird dieser error Der Parameter ist nicht definiert. Es tritt ein Fehler auf, wenn der Publisher über keine Geräte zur Bereitstellung des Medienstroms verfügt oder wenn die Medienanforderung des Benutzers nicht unterstützt wird.

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

Rückgabe:

removeEventListener(Typ, Listener, Kontext)

Parameter:
Name Typ Beschreibung
type Zeichenfolge Die Zeichenfolge, die die Art des Ereignisses angibt.
listener Funktion Die zu entfernende Ereignis-Listener-Funktion.
context Objekt (Optional) Wenn Sie einen context, wird der Ereignis-Handler für alle angegebenen Ereignisse und Ereignis-Listener entfernt, die den angegebenen Kontext verwenden. (Der Kontext muss mit dem Kontext übereinstimmen, der an addEventListener().)

Abgelehnt — Verwendung off() stattdessen.

Entfernt einen Ereignis-Listener für ein bestimmtes Ereignis.

Löst eine Ausnahme aus, wenn die listener Der Name ist ungültig.

Siehe: : - off() - Veranstaltungen

setAudioMediaProcessorConnector(mediaProcessorConnector) → {Promise}

Legt einen „MediaProcessorConnector“ für die Audiospur des Publishers fest. Ein Publisher kann nur eine Audiospur haben. MediaProcessorConnector wird jeweils nur einmal angewendet. Wenn Sie einen neuen Anschluss festlegen, wird der zuvor festgelegte Audioanschluss entfernt.

Anmerkung: MediaProcessors werden nur in neueren Versionen von Chrome, Electron, Opera, Edge, Samsung Internet und Android WebView unterstützt. In anderen (nicht auf Chromium basierenden) Browsern oder unter iOS werden sie nicht unterstützt. Sie können überprüfen, ob der Client diese Funktion unterstützt, indem Sie die OT.hasMediaProcessorSupport('audio') Methode.

Das ist wichtig: Medienprozessoren erfordern eine angemessene Prozessorunterstützung. Selbst in unterstützten Browsern sind Transformatoren unter Umständen nicht stabil, wenn Hintergrundprozesse die verfügbaren Rechenressourcen einschränken. Siehe Anforderungen des Kunden.

Der Aufruf dieser Methode führt unter den folgenden Bedingungen zu einem Fehler (das von der Methode zurückgegebene Promise wird abgelehnt): unter den folgenden Bedingungen:

  • Es sind keine Audio-Eingabegeräte (Mikrofone) verfügbar.
  • Beim Abrufen von Audiodaten vom Audio-Eingabegerät ist ein Fehler aufgetreten.
  • Beim Abrufen des verarbeiteten Titels vom MediaProcessorConnector ist ein Fehler aufgetreten.

Sie können den aktuellen Konnektor löschen, indem Sie diese Methode mit null.

Weitere Informationen finden Sie in der Verwendung der Vonage Medienprozessor-Bibliothek Leitfaden für Entwickler.

Parameter:
Name Typ Beschreibung
mediaProcessorConnector MediaProcessorConnector Eine Instanz von `MediaProcessorConnector`. Siehe die Dokumentation zur Vonage Media Processor-Bibliothek.

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

Rückgabe:

Ein Promise, das erfüllt wird, wenn der Vorgang erfolgreich abgeschlossen wurde. Tritt ein Fehler auf, wird das Promise abgelehnt und es wird kein Connector festgelegt.

setAudioSource(audioSource) → {Promise}

Wechselt die vom Publisher verwendete Audio-Eingangsquelle. Sie können die audioSource zu einer Geräte-ID (Zeichenkette) oder einem „Audio MediaStreamTrack“-Objekt.

Dies führt unter den folgenden Bedingungen zu einem Fehler (das von der Methode zurückgegebene Promise wird abgelehnt):

  • Der Browser unterstützt diese Methode nicht. Diese Methode wird im Internet Explorer sowie in Nicht-Chromium-Versionen von Edge (älter als Version 79) nicht unterstützt.
  • Der Publisher wurde nicht mit einer Audioquelle initialisiert. (Der audioSource Option des OT.initPublisher() Die Methode wurde auf null oder false).
  • Dem Benutzer wurde der Zugriff auf das Audio-Eingabegerät verweigert.
  • Beim Abrufen von Audiodaten vom Audio-Eingabegerät oder vom „MediaStreamTrack“-Objekt ist ein Fehler aufgetreten.
  • Die audioSource Der Wert ist kein String und kein MediaStreamTrack-Objekt.
  • Die audioSource „string“ ist kein gültiges Audio-Eingabegerät, das dem Browser zur Verfügung steht.
Parameter:
Name Typ Beschreibung
audioSource Objekt Die Geräte-ID (Zeichenkette) eines Audio-Eingabegeräts oder eines „Audio MediaStreamTrack“-Objekts.

Siehe: : - Herausgeber.getAudioSource()

Rückgabe:

Ein Promise, das erfüllt wird, wenn der Vorgang erfolgreich abgeschlossen wurde. Tritt ein Fehler auf, wird das Promise abgelehnt.

setMaxVideoBitrate(bitrateBps)

Legt eine benutzerdefinierte maximale Video-Bitrate für den Publisher fest. Stellen Sie diesen Wert auf einen Wert zwischen 5.000 und 10.000.000 ein. Wenn Sie den Wert auf 0 setzen, wird jede zuvor festgelegte benutzerdefinierte Bitrate entfernt, und es wird zum Standardverhalten zurückgekehrt.

Die Festlegung der maximalen Bitrate wird in den neuesten Versionen aller unterstützten Browser unterstützt.

Parameter:
Name Typ Beschreibung
bitrateBps Integer Der Wert für die Videobitrate – zwischen 5.000 und 10.000.000. Setzen Sie den Wert auf 0, um eine benutzerdefinierte Bitrate-Einstellung zu entfernen und zum Standardverhalten zurückzukehren.

Siehe: : - Publisher.getMaxVideoBitrate() - Publisher.setVideoBitratePreset() - Herausgeber Maximale Bitrate

setPreferredFrameRate(frameRate) → {Promise}

Legt die bevorzugte Bildrate für das Video fest. Diese Funktion legt die gewünschte Bildrate für die Veröffentlichung des Videos fest. Die Bildrate muss eine ganze Zahl ≥ 1 sein. Bei erfolgreichem Abschluss werden die neuen Bildratenbeschränkungen auf die Videospur angewendet.

Parameter:
Name Typ Beschreibung
frameRate Number Die bevorzugte Bildfrequenz für Videos.
Rückgabe:

Wird aufgelöst, wenn die Videoeinschränkungen erfolgreich angewendet wurden. Andernfalls wird ein Fehler ausgelöst – beispielsweise, wenn der Publisher kein Video veröffentlicht, die Bildrate ungültig ist oder die Anwendung der Einschränkungen fehlschlägt.

setPreferredResolution(preferredResolution) → {Promise}

Legt die bevorzugte Videoauflösung fest. Diese Funktion legt die bevorzugte Auflösung für den Video-Publisher fest. Sie überprüft, ob die Eingabe ein Objekt mit den Eigenschaften „width“ und „height“ ist, deren Werte positive ganze Zahlen sind, und stellt sicher, dass die Auflösung nicht größer ist als die ursprüngliche Veröffentlichungsauflösung. Bei Erfolg werden die neuen Einschränkungen auf die Videospur angewendet.

Parameter:
Name Typ Beschreibung
preferredResolution Objekt Die gewünschte Auflösung. Eigenschaften Name Typ Beschreibung --- --- --- width Number Bevorzugte Videobreite (Pixel). height Number Bevorzugte Video-Höhe (Pixel).
Rückgabe:

Wird aufgelöst, wenn die Videoeinschränkungen erfolgreich angewendet wurden. Andernfalls wird ein Fehler ausgelöst – beispielsweise, wenn der Herausgeber kein Video veröffentlicht, die Abmessungen ungültig sind oder die Auflösung die ursprüngliche Auflösung überschreitet.

setStyle(style, value) → {Herausgeber}

Legt Eigenschaften fest, die das Erscheinungsbild einiger Steuerelemente der Benutzeroberfläche des Publishers bestimmen.

Sie können dieser Methode entweder einen oder zwei Parameter übergeben.

Wenn Sie einen Parameter übergeben, style, es handelt sich um ein Objekt mit den folgenden Eigenschaften:

  • audioLevelDisplayMode (Zeichenkette) — Wie die Audiopegelanzeige dargestellt werden soll. Mögliche Werte sind: "auto" (Das Symbol wird angezeigt, wenn das Video deaktiviert ist), "off" (die Anzeige wird nicht angezeigt) und "on" (Die Anzeige ist immer sichtbar).
  • archiveStatusDisplayMode (Zeichenkette) — Wie die Archivstatusanzeige angezeigt werden soll. Mögliche Werte sind: "auto" (die Anzeige erscheint, wenn die Sitzung aufgezeichnet wird), "off" (Die Anzeige wird nicht angezeigt). Wenn Sie die Anzeige des Archivstatus deaktivieren, können Sie eigene Benutzeroberflächen-Meldungen basierend auf der archiveStarted und archiveStopped Ereignisse, die durch das Session-Objekt ausgelöst werden.
  • backgroundImageURI (Zeichenkette) — Eine URI für ein Bild, das als Hintergrundbild angezeigt werden soll, wenn kein Video angezeigt wird. (Ein Video wird möglicherweise nicht angezeigt, wenn Sie publishVideo(false) (im Publisher-Objekt). Sie können eine HTTP- oder HTTPS-URI an den Speicherort einer PNG-, JPEG- oder nicht animierten GIF-Datei übergeben. Sie können auch die data URI-Schema (anstelle von http oder https) und übergeben Sie Base-64-verschlüsselte PNG-Daten, wie sie beispielsweise aus der Publisher.getImgData() Methode (Sie könnten beispielsweise myPublisher.setStyle("backgroundImageURI", myPublisher.getImgData())). Wenn die URL oder die Bilddaten ungültig sind, wird die Eigenschaft ignoriert (der Versuch, das Bild festzulegen, schlägt ohne Fehlermeldung fehl). Der aktuelle Hintergrund wird entfernt, wenn kein Bild übergeben wird, und die Initialen werden angezeigt, sofern sie zuvor festgelegt wurden.
  • buttonDisplayMode (Zeichenkette) — So werden die Mikrofon- Steuerelemente angezeigt. Mögliche Werte sind: "auto" (Die Steuerelemente werden angezeigt, wenn der Stream zum ersten Mal angezeigt wird und wenn der Benutzer mit der Maus über die Anzeige fährt), "off" (die Steuerelemente werden nicht angezeigt) und "on" (Die Steuerelemente werden immer angezeigt).
  • nameDisplayMode (Zeichenkette) — Gibt an, ob der Stream-Name angezeigt werden soll. Mögliche Werte sind: "auto" (Der Name wird angezeigt, wenn der Stream zum ersten Mal angezeigt wird und wenn der Benutzer mit der Maus über die Anzeige fährt), "off" (der Name wird nicht angezeigt), und "on" (Der Name wird immer angezeigt).

Der folgende Code übergibt beispielsweise einen Parameter an die Methode:

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

Wenn Sie zwei Parameter übergeben, style und value, es handelt sich dabei um Schlüssel-Wert-Paare, die eine Eigenschaft des Anzeigestils definieren. Der folgende Code übergibt beispielsweise zwei Parameterwerte an die Methode:

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

Sie können die Anfangseinstellungen vornehmen, wenn Sie die Session.publish() oder OT.initPublisher() Methode. Übergeben Sie ein style Eigenschaft als Teil der properties Parameter der Methode.

Das OT-Objekt löst ein exception Selbst wenn Sie einen ungültigen Stil an die Methode übergeben. Die code Die Eigenschaft des ExceptionEvent-Objekts ist auf 1011 gesetzt.

Parameter:
Name Typ Beschreibung
style Objekt Entweder ein Objekt, das Eigenschaften enthält, die den Stil definieren, oder eine Zeichenkette, die diese einzelne zu setzende Stileigenschaft definiert.
value Zeichenfolge Der Wert, der für die style übergeben. Übergeben Sie einen Wert für diesen Parameter nur, wenn der Wert des style Der Parameter ist ein String.

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

Rückgabe:

Das Publisher-Objekt

setTargetScalabilityMode(scalabilityMode)

Legt den Ziel-Skalierbarkeitsmodus (SVC – Scalable Video Coding) für diesen Publisher fest.

Der Skalierbarkeitsmodus steuert die Anzahl der räumlichen (Auflösung) und zeitlichen (Bildrate) Ebenen, die WebRTC codiert. Der Modus wird auf den Medienpfad des Media Routers angewendet.

Diese Methode kann jederzeit aufgerufen werden – sie setzt nicht voraus, dass die Aushandlung des Medienpfads bereits abgeschlossen ist. Der Modus wird angewendet, sobald der Medienpfad des Media Routers eingerichtet ist.

Wird auf dem Medienpfad des Media Routers ein Nicht-SVC-Codec (VP8, H.264) ausgehandelt, wird der am ehesten passende Modus verwendet: Die räumlichen Ebenen werden auf 1 festgelegt, wobei die zeitliche Dimension beibehalten wird (z. B. L2T2L1T2 (wenn VP8 ausgehandelt wird).

Zulässige Modi:

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

Dies ist eine Beta-Funktion.

Parameter:
Name Typ Beschreibung
scalabilityMode Zeichenfolge Die Kennung des Ziel-Skalierbarkeitsmodus (z. B. "L1T3", "L3T3").

Siehe: : - Publisher.getTargetScalabilityMode()

Würfe:

setVideoBitratePreset(preset)

Legt die maximale Video-Bitrate für den Publisher auf eine der folgenden Voreinstellungen fest: „default“, „bw_saver“ oder „extra_bw_saver“. Weitere Informationen finden Sie in der Herausgeber Maximale Bitrate Leitfaden für Entwickler.

Die Festlegung der maximalen Bitrate wird in den neuesten Versionen aller unterstützten Browser unterstützt.

Parameter:
Name Typ Beschreibung
preset Zeichenfolge Die zu verwendende Voreinstellung: entweder „default“, „bw_saver“ oder „extra_bw_saver“.

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

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

Legt den Inhaltshinweis für die Videospur des Publisher-Streams fest. Dadurch können Browser Kodierungs- oder Verarbeitungsmethoden verwenden, die besser auf die Art des Inhalts abgestimmt sind.

Verwenden Sie diese Methode, um den angezeigten Videoinhalt dynamisch zu ändern. Legen Sie den anfänglich angezeigten Videoinhalt fest, indem Sie den videoContentHint Eigenschaft der an die OT.initPublisher() Methode.

Chrome 60+, Safari 12.1+, Edge 79+, Opera 47+, aktuelle Versionen von Samsung Internet, WebView unter Android 70+ sowie WebView unter iOS 12.2+ unterstützen Video-Content-Hints.

Parameter:
Name Typ Beschreibung
videoContentHint Zeichenfolge Sie können hierfür einen der folgenden Werte festlegen: - "" — Es wird kein Hinweis gegeben. - "motion" — Die Spur sollte so behandelt werden, als ob sie Videomaterial enthielte, bei dem die Bewegung eine wichtige Rolle spielt. Diese Einstellung können Sie beispielsweise für einen Bildschirmfreigabe-Stream verwenden, der Videomaterial enthält. - "detail" — Bei dieser Spur sollte besonders darauf geachtet werden, dass die Videodetails von besonderer Bedeutung sind. Diese Einstellung eignet sich beispielsweise für einen Bildschirmfreigabe-Stream, der Textinhalte, Zeichnungen oder Strichzeichnungen enthält. - "text" — Bei dieser Spur sollte besonders darauf geachtet werden, dass Textdetails besonders wichtig sind. Diese Einstellung können Sie beispielsweise für einen Bildschirmfreigabe-Stream verwenden, der Textinhalte enthält.

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

Rückgabe:

setVideoMediaProcessorConnector(mediaProcessorConnector) → {Promise}

Legt einen „MediaProcessorConnector“ für die Videospur des Publishers fest. Ein Publisher kann nur eine Videospur haben. MediaProcessorConnector wird jeweils nur einmal angewendet. Wenn Sie einen neuen Anschluss festlegen, wird der zuvor festgelegte Videoanschluss entfernt.

Diese Methode ist nicht kompatibel mit der Publisher.applyVideoFilter() Methode. Der Aufruf dieser Methode nach Publisher.applyVideoFilter(filter) gibt ein mit einem Fehler abgelehntes Promise zurück, mit dem name Eigenschaft des Fehlersatzes auf 'OT_NOT_SUPPORTED'. Sie können den Videofilter löschen, indem Sie Publisher.clearVideoFilter().

Anmerkung: MediaProcessors werden nur in neueren Versionen von Chrome, Firefox, Electron, Opera, Edge, Samsung Internet, WebView für Android sowie in den neuesten Versionen von Safari (Version 26+) und iOS WebView (Version 26+) unterstützt. Sie können überprüfen, ob der Client diese Funktion unterstützt, indem Sie die OT.hasMediaProcessorSupport('video') Methode.

Das ist wichtig: Medienprozessoren erfordern eine angemessene Prozessorunterstützung. Selbst in unterstützten Browsern sind Transformatoren unter Umständen nicht stabil, wenn Hintergrundprozesse die verfügbaren Rechenressourcen einschränken. Siehe Anforderungen des Kunden.

Der Aufruf dieser Methode führt unter den folgenden Bedingungen zu einem Fehler (das von der Methode zurückgegebene Promise wird abgelehnt): unter den folgenden Bedingungen:

  • Es sind keine Videoeingabegeräte (Kameras) vorhanden.
  • Ein Videofilter wurde bereits über die Publisher.applyVideoFilter() Methode.
  • Es ist ein Fehler bei der Erfassung des Videos vom Videoeingabegerät aufgetreten.
  • Beim Abrufen des verarbeiteten Titels vom MediaProcessorConnector ist ein Fehler aufgetreten.

Sie können den aktuellen Konnektor löschen, indem Sie diese Methode mit null.

Weitere Informationen finden Sie in der Verwendung der Vonage Medienprozessor-Bibliothek Leitfaden für Entwickler.

Parameter:
Name Typ Beschreibung
mediaProcessorConnector MediaProcessorConnector Eine Instanz von `MediaProcessorConnector`. Siehe die Dokumentation zur Vonage Media Processor-Bibliothek.

Siehe: : - OT.hasMediaProcessorSupport('video')

Rückgabe:

Ein Promise, das erfüllt wird, wenn der Vorgang erfolgreich abgeschlossen wurde. Tritt ein Fehler auf, wird das Promise abgelehnt und es wird kein Connector festgelegt.

setVideoSource(videoSourceId) → {Promise}

Mit dieser Methode wird die Videoquelle für einen Publisher festgelegt, der eine Kamera verwendet. Übergeben Sie die Geräte-ID der neuen Videoquelle.

Die folgenden Angaben werden zu Fehlern führen:

  • Wenn die videoSourceId Der Parameter ist keine Zeichenkette oder die Geräte-ID eines gültigen Videoeingabegeräts; in diesem Fall wird das Promise mit einem Fehler zurückgewiesen, wobei die name Eigenschaft auf 'OT_INVALID_VIDEO_SOURCE'.
  • Wenn der Publisher derzeit keinen Kamera-Eingang verwendet, wird das Promise mit einem Fehler zurückgewiesen, der die name Eigenschaft auf 'OT_SET_VIDEO_SOURCE_FAILURE'.
Parameter:
Name Typ Beschreibung
videoSourceId Zeichenfolge Die Geräte-ID eines Videoeingangsgeräts (Kamera).

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

Rückgabe:

Ein Promise, das bei erfolgreicher Ausführung der Operation einen Wert zurückgibt. Tritt ein Fehler auf, wird das Promise abgelehnt.

videoHeight() → {Number}

Gibt die Höhe des lokalen Videos des Herausgebers in Pixeln zurück, die aus der lokalen <video> Element. Dies ist derselbe Wert wie stream.videoDimensions.height.

Rückgabe:

Die Höhe des lokalen Videos des Herausgebers in Pixeln.

videoWidth() → {Number}

Gibt die Breite des lokalen Videos des Herausgebers in Pixeln zurück, die aus der lokalen <video> Element. Dies ist derselbe Wert wie stream.videoDimensions.width

Rückgabe:

Die Breite des lokalen Videos des Herausgebers in Pixeln.

Veranstaltungen

Zugriff erlaubt

Wird ausgelöst, wenn der Benutzer auf die Schaltfläche „Zulassen“ geklickt hat, wodurch der App Zugriff auf die Kamera und das Mikrofon gewährt wird. Das Publisher-Objekt verfügt über ein accessAllowed Eigenschaft, die angibt, ob der Benutzer den Zugriff auf die Kamera und das Mikrofon gewährt hat.

Siehe: : - Veranstaltung

accessDenied

Wird ausgelöst, wenn der Benutzer auf die Schaltfläche „Ablehnen“ geklickt hat, wodurch verhindert wird, dass die App Zugriff auf die Kamera und das Mikrofon erhält.

Dieses Ereignis wird auch ausgelöst, wenn der Benutzer die Berechtigungen wieder entzieht, nachdem er sie zuvor erteilt hatte.

Anmerkung: Unter macOS 10.15+ (Catalina) muss der Benutzer zur Veröffentlichung eines Bildschirmfreigabestreams dem Browser in den macOS-Systemeinstellungen > „Sicherheit & Datenschutz“ > „Datenschutz“ > „Bildschirmaufzeichnung“ Zugriff auf den Bildschirm gewähren. Andernfalls sendet der Publisher eine accessDenied Veranstaltung.

Siehe: : - Veranstaltung

accessDialogClosed

Wird gesendet, wenn das Dialogfeld „Zulassen/Verweigern“ geschlossen wird. (Dies ist das Dialogfeld, in dem der Benutzer der App Zugriff auf die Kamera und das Mikrofon gewähren kann.)

Siehe: : - Veranstaltung

accessDialogOpened

Wird ausgelöst, wenn das Dialogfeld „Zulassen/Verweigern“ geöffnet wird. (Dies ist das Dialogfeld, in dem der Benutzer der App Zugriff auf die Kamera und das Mikrofon gewähren kann.)

Siehe: : - Veranstaltung

audioInputDeviceChanged

Wird ausgelöst, wenn das Audio-Eingabegerät gewechselt wird.

Siehe: : - Veranstaltung - AudioInputDeviceChangedEvent

audioLevelUpdated

Wird in regelmäßigen Abständen gesendet, um den Audiopegel des Publishers anzuzeigen. Das Ereignis wird je nach Browser bis zu 60 Mal pro Sekunde gesendet. Das audioLevel Eigenschaft des Ereignisses ist der Audiopegel, im Bereich von 0 bis 1,0. Siehe AudioLevelUpdatedEvent Weitere Informationen.

Im folgenden Beispiel wird der Wert eines Meter-Elements angepasst, das die Lautstärke des Publishers anzeigt. Beachten Sie, dass der Audiopegel logarithmisch angepasst wird und ein gleitender Durchschnitt angewendet wird:

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

Dieses Beispiel veranschaulicht den Algorithmus, der von der standardmäßigen Audiopegelanzeige verwendet wird, die in einem reinen Audio-Publisher angezeigt wird.

Siehe: : - AudioLevelUpdatedEvent

zerstört

Wird ausgelöst, wenn das Publisher-Element aus dem HTML-DOM entfernt wird. Wenn dieses Ereignis ausgelöst wird, können Sie HTML-DOM-Elemente, die mit dem Publisher in Verbindung stehen, anpassen oder entfernen.

mediaStopped

Der Nutzer, der den Stream veröffentlicht, hat die Freigabe eines oder aller Medientypen (Video, Audio und/oder Bildschirm) beendet. Dies kann passieren, wenn ein Nutzer eine Kamera oder ein Mikrofon trennt, die bzw. das als Medienquelle für den Publisher verwendet wird. Oder es kann auftreten, wenn ein Benutzer eine Anwendung schließt, wenn die Video- und Audioquellen des Streams „MediaStreamTrack“-Elemente sind und die Tracks angehalten oder gelöscht werden.

Siehe: : - MediaStoppedEvent

mediaStreamAvailable

Wird gesendet, sobald der MediaStream verfügbar ist.

Siehe: : - Veranstaltung

muteForced

Ein Moderator hat diesen Client dazu gezwungen, den Ton stummzuschalten.

Siehe: : - Veranstaltung - Session.forceMuteAll() - Session.forceMuteStream() - Stummschalten des Tons von Streams in einer Sitzung

networkConditionChanged

Wird ausgelöst, wenn beim Publisher eine Änderung der Netzwerkbedingungen festgestellt wird.

Diese Veranstaltung unterscheidet sich von videoDisabled und videoEnabled Ereignisse, da es Änderungen des Netzwerkzustands und nicht Änderungen des Status der Videospur des Publishers meldet. Anwendungen können dieses Ereignis nutzen, um auf Netzwerkprobleme zu reagieren, beispielsweise durch Aktualisierung der Benutzeroberfläche, Protokollierung von Telemetriedaten oder Auslösen adaptiver Verhaltensweisen.

Die Eigenschaften dieses Ereignisses sind:

  • reason — Gibt die Ursache des Ereignisses an. Derzeit ist dies immer "networkConditionChanged"
  • statsContainer — Objekt, das einen vollständigen Snapshot der aktuellen Statistiken enthält, dessen Struktur identisch mit der des Objekts ist, das von einer getStats() Aufruf. Beachten Sie, dass für einen Publisher in einer weitergeleiteten Sitzung das Statistikobjekt ein connectionId und eine subscriberId, da der Publisher an jeden Teilnehmer einen separaten Datenstrom sendet und die Statistiken pro Teilnehmer gemeldet werden. Dadurch kann der Benutzer erkennen, bei welchem Teilnehmer möglicherweise eine Verschlechterung der Netzwerkqualität vorliegt. Bei weitergeleiteten Sitzungen sind nur die Statistiken, die dem betroffenen Teilnehmer entsprechen, im Ereignis enthalten.

Siehe: : - Veranstaltung

streamCreated

Der Herausgeber hat mit dem Streaming in die Sitzung begonnen.

Siehe: : - StreamEvent - Session.publish()

streamDestroyed

Der Publisher hat das Streaming an die Sitzung beendet. Standardmäßig wird das Publisher-Objekt aus dem HTML-DOM entfernt. Das Publisher-Objekt löst ein destroyed Ereignis, wenn das Element aus dem HTML-DOM entfernt wird. Wenn Sie die preventDefault() Methode des Ereignisobjekts im Ereignis-Listener aufgerufen wird, wird das Standardverhalten verhindert, und Sie können den Publisher optional zur Wiederverwendung beibehalten oder mithilfe Ihres eigenen Codes bereinigen.

Siehe: : - StreamEvent

videoDimensionsChanged

Wird versendet, wenn der lokale Verlag <video> Das Element erkennt eine Dimensionsänderung. Wenn der Publisher aktiv veröffentlicht, wird dadurch auch die stream.videoDimensions Eigenschaft. Beispiele dafür, was dazu führen kann, dass das lokale Video- Element seine Größe ändert:

  • Wenn stream.videoType wird eingestellt auf "screen" (Bildschirmfreigabe) und der Benutzer ändert die Größe des erfassten Fensters.
  • Wenn das Video über ein Mobilgerät veröffentlicht wird und der Nutzer das Gerät dreht, wodurch sich die Ausrichtung der Kamera ändert.
  • Wenn der Verleger anruft Publisher#setPreferredResolution, indem man die Auflösung der Zielerfassung ändert.

Dieses Ereignisobjekt verfügt über ein newValue Eigenschaft und eine oldValue Eigenschaft, die die neuen und alten Abmessungen des Videos angibt. Jede davon hat eine height Eigenschaft und eine width Eigenschaft, die die Höhe und Breite in Pixeln angibt.

Siehe: : - VideoDimensionsChangedEvent

videoDeaktiviert

Wird gesendet, wenn das Video für den Herausgeber deaktiviert ist.

Bevor dieses Ereignis gesendet wird, sendet der Publisher – sobald sich die Stream-Qualität auf ein Niveau verschlechtert, das so niedrig ist, dass die Gefahr besteht, dass der Videostream deaktiviert wird – ein videoDisableWarning Veranstaltung.

Sollte sich die Verbindung wieder so weit verbessern, dass die Wiedergabe von Videos möglich ist, löst das Publisher-Objekt ein videoEnabled Ereignis, und der Abonnent empfängt wieder Videos.

Standardmäßig zeigt der Publisher eine Anzeige für deaktivierte Videos an, wenn ein videoDisabled Ein Ereignis mit diesem Grund wird ausgelöst und hebt die Markierung auf, wenn das videoEnabled Ein Ereignis mit diesem Grund wird ausgelöst. Sie können die Anzeige dieses Symbols steuern, indem Sie die videoDisabledDisplayMode mit dem Publisher.setStyle() Methode oder durch Festlegen der videoDisabledDisplayMode style Eigenschaft bei der Initialisierung des Publishers mit dem OT.initPublisher() Methode.

Sie können diese Fallback-Funktion für reines Audio aktivieren, indem Sie die publisher Eigenschaft zu true in der audioFallback Option übergeben an die OT.initPublisher() Methode für den Publishing-Client. (Siehe OT.initPublisher().)

Siehe: : - Veranstaltung - videoDisableWarning Veranstaltung - videoEnabled Veranstaltung

videoDisableWarning

Wird gesendet, wenn der Publisher feststellt, dass sich die Stream-Qualität verschlechtert hat, und das Video wird deaktiviert, falls sich die Qualität weiter verschlechtert. Sollte sich die Qualität weiter verschlechtern, deaktiviert der Publisher das Video und sendet eine videoDisabled Veranstaltung.

Standardmäßig zeigt der Publisher eine Warnanzeige für deaktivierte Videos an, wenn dieses Ereignis ausgelöst wird (und das Video deaktiviert ist). Sie können die Anzeige dieses Symbols steuern, indem Sie die Methode setStyle() Methode des Publishers und das Festlegen der videoDisabledDisplayMode Eigenschaft, oder Sie können die videoDisabledDisplayMode Eigenschaft beim Aufruf der OT.initPublisher() Methode und Festlegen der style Eigenschaft des properties Parameter.

Siehe: : - Veranstaltung - videoDeaktiviert Veranstaltung - videoDisableWarningLifted Veranstaltung

videoDisableWarningLifted

Wird ausgelöst, wenn der Publisher feststellt, dass sich die Stream-Qualität so weit verbessert hat, dass das deaktivierte Video kein unmittelbares Risiko mehr darstellt. Dieses Ereignis wird ausgelöst, nachdem das Publisher-Objekt ein videoDisableWarning Veranstaltung.

Siehe: : - Veranstaltung - videoDisableWarning Veranstaltung - videoDeaktiviert Veranstaltung

videoElementCreated

Wird ausgelöst, wenn das Video-Element des Publishers erstellt wird. Fügen Sie einen Listener für dieses Ereignis hinzu, wenn Sie die insertDefaultUI Option zu false im Aufruf der OT.initPublisher() Methode. Die Website element Die Eigenschaft des Ereignisobjekts ist ein Verweis auf den Publisher video Element (oder im Internet Explorer das object Element, das das Video enthält). Fügen Sie es dem HTML-DOM hinzu, um das Video anzuzeigen. Wenn Sie die insertDefaultUI Option für falsedie video (oder objectDas )-Element wird nicht automatisch in das DOM eingefügt.

Fügen Sie nur dann einen Listener für dieses Ereignis hinzu, wenn Sie die insertDefaultUI Option für false. Falls Sie noch nicht festgelegt haben, insertDefaultUI Option für false, bitte nicht verschieben video (oder object) im HTML-DOM. Dadurch wird das Publisher-Objekt zerstört.

Siehe: : - VideoElementCreatedEvent

videoEnabled

Wird ausgelöst, wenn der Publisher die Videoübertragung an den Publisher wieder aufnimmt, nachdem das Video zuvor deaktiviert war.

Siehe: : - Veranstaltung - videoDeaktiviert Veranstaltung

videoQualityChanged

Wird ausgelöst, wenn der Publisher eine wesentliche Veränderung der Videoqualität feststellt, wie z. B. einen Auflösungsverlust oder eine Qualitätsminderung aufgrund von Bandbreiten- oder CPU-Engpässen.

Diese Veranstaltung unterscheidet sich von videoDisabled und videoEnabled Publisher-Ereignisse, bei denen Änderungen gemeldet werden, die die Videoqualität betreffen. videoDisabled und videoEnabled gibt lediglich an, dass die Videospur des Teilnehmers ein- oder ausgeschaltet wurde (beispielsweise aufgrund einer Aktualisierung der Stream-Eigenschaften oder eines Audio-Fallbacks). Im Gegensatz dazu liefert dieses Ereignis Diagnoseinformationen zu den Ursachen für Qualitätseinbußen – wie beispielsweise CPU- oder Bandbreitenbeschränkungen – und kann auch dann ausgelöst werden, wenn das Video weiterhin aktiviert bleibt.

Der Hauptzweck dieses Ereignisses besteht darin, Gründe für Qualitätseinschränkungen anzuzeigen. Es ist möglich, dass sich die Auflösung oder die Videoeebene ändert, auch wenn der Grund nicht ausdrücklich eine Änderung der Auflösung ist – beispielsweise als Folge von CPU-Einschränkungen. Bitte beachten Sie die im Ereignis bereitgestellten aktualisierten Statistiken, um den vollständigen Kontext zu erhalten. Wenn ein zuvor aktiver Grund für die Qualitätsminderung nicht mehr vorliegt, wird das Ereignis erneut ausgelöst mit "none" als Grund.

Die reason Die Eigenschaft definiert den Grund für die Änderung der Videoqualität. Hierfür stehen folgende Werte zur Auswahl:

  • "bandwidth" — Qualitätsverlust aufgrund unzureichender Netzwerkbandbreite
  • "cpu" — Qualitätsverlust aufgrund von CPU-Einschränkungen auf dem Client-Gerät
  • "other" — Sonstige, nicht näher bezeichnete Gründe
  • "codecChange" — Zeigt an, dass sich der Videocodec geändert hat
  • "resolutionChange" — Dies kann aufgrund von Bitratenbeschränkungen, einer Anpassung des Encoders, Änderungen an der Kameraquelle (z. B. Kamerawechsel oder Änderung der Eingangsauflösung) oder Konfigurationsänderungen auftreten und bedeutet nicht immer eine Verschlechterung der Qualität.
  • "none" — Wenn ein zuvor aktiver Grund für eine Qualitätsminderung aufgehoben wird

Die statsContainer Die Eigenschaft definiert ein Objekt, das eine vollständige Momentaufnahme der aktuellen Statistiken enthält, die identisch strukturiert ist wie das Objekt, das von einer getStats() Aufruf. Beachten Sie, dass für einen Publisher in einer weitergeleiteten Sitzung das Statistikobjekt ein connectionId und eine subscriberId, da der Publisher an jeden Teilnehmer einen separaten Datenstrom sendet und die Statistiken pro Teilnehmer gemeldet werden. Dadurch kann der Benutzer feststellen, bei welchem Teilnehmer möglicherweise eine Verschlechterung der Qualität vorliegt. Bei weitergeleiteten Sitzungen sind nur die Statistiken des betroffenen Teilnehmers im Ereignis enthalten.

Siehe: : - Veranstaltung