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
videoSourceOption des OT.initPublisher() Die Methode wurde aufnull,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
videoSourceOption des OT.initPublisher() Die Methode wurde aufnull,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 deridEigenschaft derconnectionEigenschaft 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 deridEigenschaft 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:
- Der Browser unterstützt diese Methode nicht (beispielsweise in Chrome Version 57 und darunter, die die RTCPeerConnection.getStats() Standard).
- Die PeerConnection da der Publisher nicht verbunden ist.
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
typeDie Eigenschaft des Objekts ist auf"backgroundBlur". Ein Filterobjekt für die Hintergrundunschärfe enthält ein zusätzlichesblurStrengthEigenschaft, die den Unschärferadius definiert und entweder auf"low"oder"high". - Filter zum Ersetzen des Hintergrunds - Die
typeDie Eigenschaft „type“ des Objekts ist auf"backgroundReplacement". Ein Filterobjekt zum Ersetzen des Hintergrunds enthält ein zusätzlichesbackgroundImgUrlEigenschaft, 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
audioSourceOption des OT.initPublisher() Die Methode wurde aufnulloderfalse). - 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
audioSourceDer 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 derarchiveStartedundarchiveStoppedEreignisse, 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 SiepublishVideo(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 diedataURI-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 beispielsweisemyPublisher.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. L2T2 → L1T2 (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
videoSourceIdDer 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 dienameEigenschaft auf'OT_INVALID_VIDEO_SOURCE'. - Wenn der Publisher derzeit keinen Kamera-Eingang verwendet, wird das Promise
mit einem Fehler zurückgewiesen, der die
nameEigenschaft 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 einergetStats()Aufruf. Beachten Sie, dass für einen Publisher in einer weitergeleiteten Sitzung das Statistikobjekt einconnectionIdund einesubscriberId, 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.videoTypewird 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