Das „Subscriber“-Objekt stellt das lokale Videoelement dar, das einen
Remote-Stream wiedergibt. Das „Subscriber“-Objekt enthält Methoden, mit denen Sie die
lokale Audiowiedergabe für den abonnierten Stream deaktivieren und aktivieren können. Das subscribe() Methode der
Sitzung Das Objekt gibt ein Subscriber-Objekt zurück.
Eigenschaften
| Name | Typ | Beschreibung |
|---|---|---|
element |
Element | Das HTML-DOM-Element, das den Abonnenten enthält. |
id |
Zeichenfolge | Die DOM-ID des Abonnenten. |
stream |
Stream | Der Stream, den Sie abonnieren. |
Methoden
| Name | Beschreibung | |
|---|---|---|
addEventListener(type, listener, context) |
Veraltet. | |
getAudioVolume() → {Number} |
Gibt die Lautstärke des Teilnehmers als Wert zwischen 0 und 100 zurück. | |
| `getCaptionsTranslationLanguage() → {CaptionsLanguageCode | null}` | Gibt den aktuellen Sprachcode für die Übersetzung der Untertitel für diesen Abonnenten zurück. |
getImgData() → {String} |
Gibt die Base-64-kodierte Zeichenfolge der PNG-Daten zurück, die das Video des Abonnenten darstellen. | |
getRtcStatsReport() → {Promise} |
Gibt ein Promise zurück, das bei Erfolg ein RtcStatsReport-Objekt für den abonnierten Stream zurückgibt. | |
getStats(completionHandler) → {Promise.<SubscriberStats>} |
Gibt Details zur Qualität des Abonnentenstroms zurück, darunter Folgendes: - Gesamtzahl der verlorenen Audio- und Videopakete - Gesamtzahl der empfangenen Audio- und Videopakete - Gesamtzahl der empfangenen Audio- und Video-Bytes - Tatsächlich empfangene Videoauflösung (über videoWidth() und videoHeight()) – Tatsächliche Bildrate des decodierten Videos (über video. |
|
getStyle() → {Object} |
Gibt ein Objekt zurück, dessen Eigenschaften die aktuellen Benutzeroberflächensteuerelemente des Abonnenten definieren. | |
isAudioBlocked() |
Gibt an, ob der Ton des Teilnehmers aufgrund der Richtlinie des Browsers zur automatischen Wiedergabe von Audioinhalten blockiert ist. | |
isSubscribedToCaptions() |
Ob der Abonnent Untertitel empfängt. | |
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. | |
removeEventListener(type, listener, context) |
Veraltet. | |
restrictFrameRate(value) → {Subscriber} |
Schränkt die Bildrate des Videostreams des Abonnenten ein, wenn Sie Folgendes übergeben: true. |
|
setAudioMediaProcessorConnector(mediaProcessorConnector) → {Promise} |
Legt einen „MediaProcessorConnector“ für die Audio-Spur des Abonnenten fest. | |
setAudioVolume(value) → {Subscriber} |
Stellt die Lautstärke des Teilnehmers auf einen Wert zwischen 0 und 100 ein. | |
setCaptionsTranslationLanguage(langCode) |
Legt die bevorzugte Sprache für die Übersetzung von Untertiteln für diesen Abonnenten fest. | |
setPreferredFrameRate(frameRate) → {Promise.<void>} |
Legt die bevorzugte Bildrate des Videos des Teilnehmers fest. | |
setPreferredResolution(resolution) → {Promise.<void>} |
Legt die bevorzugte Auflösung des Videos des Abonnenten fest. | |
setStyle(style, value) → {Subscriber} |
Legt Eigenschaften fest, die das Erscheinungsbild einiger Steuerelemente der Benutzeroberfläche des Subscribers bestimmen. | |
setVideoMediaProcessorConnector(mediaProcessorConnector) → {Promise} |
Legt einen „MediaProcessorConnector“ für die Videospur des Abonnenten fest. | |
subscribeToAudio(value) → {Subscriber} |
Schaltet den Ton ein und aus. | |
subscribeToCaptions(value) → {Promise.<void>} |
Schaltet die Untertitel ein und aus. | |
subscribeToVideo(value) → {Subscriber} |
Schaltet das Video ein und aus. | |
videoHeight() → {Number} |
Gibt die tatsächlich empfangene Höhe des Abonnentenvideos in Pixeln zurück. | |
videoWidth() → {Number} |
Gibt die tatsächlich empfangene Breite des Abonnentenvideos in Pixeln zurück. |
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
getAudioVolume() → {Number}
Gibt die Lautstärke des Teilnehmers als Wert zwischen 0 und 100 zurück.
In der Regel verwendet man diese Methode in Verbindung mit der setAudioVolume()
Methode.
Siehe: : - setAudioVolume()
Rückgabe:
Die Lautstärke des Teilnehmers auf einer Skala von 0 bis 100.
getCaptionsTranslationLanguage() → {CaptionsLanguageCode|null}
Gibt den aktuellen Sprachcode für die Übersetzung der Untertitel für diesen Abonnenten zurück.
Wenn keine Übersetzungssprache festgelegt ist, wird Folgendes zurückgegeben: null um anzuzeigen, dass die Standardsprache verwendet wird.
Dies ist eine Funktion der privaten Beta-Version.
Rückgabe:
Der derzeit für die
Übersetzung von Untertiteln festgelegte Sprachcode oder null falls standardmäßig.
getImgData() → {String}
Gibt die Base-64-kodierte Zeichenfolge der PNG-Daten zurück, die das Video des Abonnenten 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 = subscriber.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.
getRtcStatsReport() → {Promise}
Gibt ein Promise zurück, das im Erfolgsfall ein RtcStatsReport-Objekt für den abonnierten Stream liefert. (Siehe RTCStatsReport.)
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 Teilnehmer nicht verbunden ist.
Siehe: : - Publisher.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.<SubscriberStats>}
Gibt Informationen zur Qualität des Abonnentenstroms zurück, darunter Folgendes:
- Gesamtzahl der verlorenen Audio- und Videopakete
- Gesamtzahl der empfangenen Audio- und Videopakete
- Gesamtzahl der empfangenen Audio- und Video-Bytes
- Tatsächlich empfangene Videoauflösung (über videoWidth() und videoHeight())
- Tatsächliche Bildrate des decodierten Videos (über
video.decodedFrameRate)
Sie können einen Test-Stream veröffentlichen, ihn (auf dem veröffentlichenden Client) abonnieren und diese Methode nutzen,
um dessen Qualität zu überprüfen. Anhand der Qualität des Streams können Sie feststellen, welche Videoauflösung
unterstützt wird und ob die Bedingungen die Übertragung von Video oder Audio zulassen. Anschließend können Sie auf Grundlage der Ergebnisse einen geeigneten
Stream veröffentlichen. Wenn Sie diese Methode zum Testen eines von Ihrem
eigenen Client veröffentlichten Streams verwenden, legen Sie den testNetwork Eigenschaft zu true In den Optionen, die Sie
an die Session.subscribe() Methode. Ein Beispiel finden Sie
unter opentok-Netzwerk-Test
Projekt auf GitHub.
Sie können diese Statistiken auch nutzen, um einen Abonnenten auf den reinen Audio-Modus umzustellen, falls der
Paketverlust beim Audio einen bestimmten Schwellenwert erreicht. Wenn Sie sich dafür entscheiden, sollten Sie die
subscriber Eigenschaft der audioFallback Objekt zu false
wenn Sie Publisher-Objekte für die Sitzung initialisieren. Dadurch wird verhindert, dass der
Vonage Video Media Router seine eigene Implementierung zum Umschalten auf reinen Audiobetrieb verwendet.
(Siehe die Dokumentation zum OT.initPublisher() Methode).
Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
completionHandler |
Funktion | Eine optionale Funktion, die die folgenden Parameter entgegennimmt: - error (Fehler) — Die Eigenschaft „error“ wird gesetzt, wenn keine Verbindung zum Client besteht. Nach erfolgreichem Aufruf der Methode ist diese Eigenschaft undefiniert. - stats (Objekt) — Ein Objekt mit den folgenden Eigenschaften: - audio.bytesReceived (Zahl) — Die Gesamtzahl der Audio-Bytes, die der Teilnehmer empfangen hat - audio.packetsLost (Zahl) — Gesamtzahl der Audiopakete, die den Teilnehmer nicht erreicht haben - audio.packetsReceived (Zahl) — Die Gesamtzahl der vom Teilnehmer empfangenen Audiopakete - timestamp (Numbers) — Der Zeitstempel in Millisekunden seit der Unix-Epoche, zu dem diese Statistiken erfasst wurden - video.bytesReceived (Zahl) — Die Gesamtzahl der vom Teilnehmer empfangenen Videobytes - video.packetsLost (Zahl) — Die Gesamtzahl der Videopakete, die den Teilnehmer nicht erreicht haben - video.packetsReceived (Zahl) — Die Gesamtzahl der vom Teilnehmer empfangenen Videopakete - video.frameRate (Zahl) — Die aktuelle durchschnittliche Bildrate des Videos. Diese Eigenschaft ist veraltet und wird in Zukunft entfernt. Bitte verwenden Sie stattdessen die video.decodedFrameRate Eigenschaft. - video.decodedFrameRate (Zahl) — Die Bildrate des dekodierten Videos (in Bildern pro Sekunde) - video.codec (Zeichenkette) — Der von diesem Teilnehmer verwendete Videocodec - video.pauseCount (Zahl) — Anzahl der Pausen bei der Videowiedergabe des Abonnenten. Eine Pause wird erkannt, wenn länger als 5 Sekunden kein Bild gerendert wird - video.totalPausesDuration (Zahl) — Kumulierte Dauer (in Millisekunden) aller erkannten Pausen bei der Videowiedergabe - video.freezeCount (Anzahl) — Anzahl der Fälle, in denen das Video des Abonnenten eingefroren ist. Ein Einfrieren wird definiert anhand der WebRTC-Statistik-Spezifikation - video.totalFreezesDuration (Zahl) — Kumulierte Dauer (in Millisekunden) aller bei der Videowiedergabe des Teilnehmers festgestellten Bildfrierungen - senderStats.connectionMaxAllocatedBitrate (Zahl) — Die maximale Bitrate, die für die Senderverbindung geschätzt werden kann, in bps (Bits pro Sekunde) - senderStats.connectionEstimatedBandwidth (Zahl) — Die aktuelle Schätzung der Bandbreite für die Verbindung des Absenders in bps (Bits pro Sekunde) - transport.connectionEstimatedBandwidth (Zahl) — Die geschätzte verfügbare Bandbreite für die lokale Verbindung in Bit pro Sekunde (bps) - transport.networkCondition (Zeichenkette) — Aktueller Status der Netzwerkverbindung der lokalen Verbindung. Mögliche Werte sind: unknown, critical, warning, fair, good und excellent. - transport.networkConditionReason (Zeichenkette) — Hauptgrund, der sich auf den Zustand des lokalen Netzwerks auswirkt. Mögliche Werte sind: none, unknown, bandwidth und packetLoss. - remotePublisherTransport.connectionEstimatedBandwidth (Zahl) — Die geschätzte verfügbare Bandbreite für die Verbindung zum Remote-Publisher in Bit pro Sekunde (bps) - remotePublisherTransport.networkCondition (Zeichenkette) — Aktueller Status der Netzwerkverbindung zum Remote-Publisher. Mögliche Werte sind: unknown, critical, warning, fair, good und excellent. - remotePublisherTransport.networkConditionReason (Zeichenkette) — Hauptgrund, der sich auf den Zustand des Netzwerks des Remote-Herausgebers auswirkt. Mögliche Werte sind: none, unknown, bandwidth und packetLoss. - networkDegradationSource (Zeichenkette) — Im Falle einer Verschlechterung der Netzwerkqualität gibt dies an, welche Seite diese verursacht hat. Mögliche Werte sind: none, bothOrUnclear, local und remote. |
Siehe: : - Verlag.getStats() - Publisher.getRtcStatsReport()
Rückgabe:
getStyle() → {Object}
Gibt ein Objekt zurück, dessen Eigenschaften die aktuellen Benutzeroberflächenelemente des
Subscribers definieren. Sie können die Eigenschaften dieses Objekts ändern und das Objekt an die
setStyle() Methode des Subscriber-Objekts. (Siehe die Dokumentation zu
setStyle() (um die Stile anzuzeigen, die dieses Objekt definieren.)
Siehe: : - setStyle()
Rückgabe:
Das Objekt, das die Stile des Abonnenten definiert.
isAudioBlocked()
Gibt an, ob der Ton des Teilnehmers aufgrund der Richtlinie zur automatischen Wiedergabe von Audioinhalten des Browsers blockiert ist.
Siehe:
: - OT.unblockAudio()
- Die audioBlocked
und audioUnblocked
Veranstaltungen für Abonnenten
- Die style.audioBlockedDisplayMode Eigenschaft der
options Parameter des
Session.subscribe() Methode
isSubscribedToCaptions()
Ob der Abonnent Untertitel empfängt. Diese Eigenschaft kann sich ändern, wenn der Abonnent die Untertitel ein-
oder ausschaltet (durch Aufruf der Subscriber.subscribeToCaptions()
Methode). Der Standardwert ist
der hasCaptions Eigenschaft des Stream-Verlegers zum Zeitpunkt der Initialisierung des Abonnenten (siehe die
Eigenschaft „Stream.hasCaptions“).
Sie können den Anfangswert dieser Eigenschaft festlegen, indem Sie die subscribeToCaptions
Eigenschaft des options Parameter des Session.subscribe()
Methode.
Siehe: : - Subscriber.subscribeToCaptions() - Session.subscribe()
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.
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
restrictFrameRate(Wert) → {Abonnent}
Schränkt die Bildrate des Videostreams des Abonnenten ein, wenn Sie Folgendes übergeben:
true. Wenn Sie false, die Bildrate des Videostreams
ist nicht begrenzt.
Wenn die Bildrate begrenzt ist, wird das Video des Abonnenten höchstens einmal pro Sekunde aktualisiert.
Diese Funktion ist nur in Sitzungen verfügbar, die den Vonage Video API Media Router verwenden (Sitzungen mit dem Medienbetrieb (auf „routed“ gesetzt), nicht jedoch in Sitzungen, bei denen der Medienmodus auf „relayed“ gesetzt ist. In „relayed“-Sitzungen hat der Aufruf dieser Methode keine Auswirkung.
Die Begrenzung der Teilnehmerbildrate hat folgende Vorteile:
- Es reduziert die CPU-Nutzung.
- Dadurch wird die beanspruchte Netzwerkbandbreite reduziert.
- Damit können Sie mehrere Streams gleichzeitig abonnieren.
Eine Verringerung der Bildrate eines Teilnehmers hat keine Auswirkungen auf die Bildrate des Videos bei anderen Clients.
Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
value |
Boolesche | Ob die Bildwiederholrate des Abonnenten begrenzt werden soll (true) oder nicht (false). |
Rückgabe:
Das „Subscriber“-Objekt. Damit lassen sich Methodenaufrufe verketten, wie im folgenden Beispiel:
mySubscriber.restrictFrameRate(false).subscribeToAudio(true);
setAudioMediaProcessorConnector(mediaProcessorConnector) → {Promise}
Legt einen „MediaProcessorConnector“ für die Audiospur des Abonnenten fest. Ein Abonnent 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 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.
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:
- 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.
setAudioVolume(value) → {Abonnent}
Stellt die Lautstärke des Teilnehmers auf einen Wert zwischen 0 und 100 ein.
Sie können die Anfangslautstärke festlegen, wenn Sie die Funktion Session.subscribe()
Methode. Übergeben Sie eine audioVolume Eigenschaft der properties Parameter
der Methode.
Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
value |
Numbers | Die Lautstärke, zwischen 0 und 100. |
Siehe: : - getAudioVolume() - Session.subscribe()
Rückgabe:
Das „Subscriber“-Objekt. Damit lassen sich Methodenaufrufe verketten, wie im folgenden Beispiel:
mySubscriber.setAudioVolume(50).setStyle(newStyle);
setCaptionsTranslationLanguage(langCode)
Legt die bevorzugte Sprache für die Übersetzung von Untertiteln für diesen Abonnenten fest.
Dies ist eine Funktion der privaten Beta-Version.
Parameter:
| Name | Typ | Beschreibung | |
|---|---|---|---|
langCode |
Untertitel-Sprachcode | null | Der Sprachcode, in den die Untertitel übersetzt werden sollen. Pass null die Standardsprache der Sitzung zu verwenden (keine Übersetzung). |
setPreferredFrameRate(frameRate) → {Promise.<void>}
Legt die bevorzugte Bildrate des Videos des Teilnehmers fest.
Das Verringern der bevorzugten Bildrate beeinträchtigt zwar die Videoqualität auf dem empfangenden Client, senkt jedoch auch die Netzwerk- und CPU-Auslastung. Möglicherweise möchten Sie für einen Empfänger eines Streams, der weniger wichtig ist als andere Streams, eine niedrigere Bildrate verwenden.
Diese Methode gilt nur beim Abonnieren eines Streams, der die Skalierbare Videofunktion. Skalierbare Videos sind verfügbar:
- Nur in Sitzungen, die den Vonage Video API Media Router verwenden (Sitzungen mit dem Medien Modus auf geroutet gesetzt).
- Gilt nur für Streams, die von Clients veröffentlicht werden, die skalierbares Video unterstützen: Clients, die das Vonage Video API iOS SDK (auf bestimmten Geräten), das Vonage Video API Android SDK (auf bestimmten Geräten) oder OpenTok.js in Chrome und Safari verwenden.
Bei Streams, die kein skalierbares Video verwenden, hat der Aufruf dieser Methode keine Auswirkung.
Anmerkung: Die Bildrate für skalierbare Videostreams wird für jeden Abonnenten automatisch an die Netzwerkbedingungen und die CPU-Auslastung angepasst, auch wenn Sie diese Methode nicht aufrufen. Rufen Sie diese Methode auf, wenn Sie eine maximale Bildrate für diesen Abonnenten festlegen möchten.
Nicht jede Bildrate steht einem Abonnenten zur Verfügung. Wenn Sie die bevorzugte Bildrate für
den Abonnenten festlegen, wählt OpenTok.js die beste verfügbare Bildrate aus, die Ihrer Einstellung entspricht.
Die verfügbaren Bildraten richten sich nach dem Wert des Subscriber-Objekts
stream.frameRate Eigenschaft, die den maximal verfügbaren Wert für den
Stream angibt. Die tatsächlich verfügbaren Bildraten hängen dynamisch von den Netzwerk- und CPU-Ressourcen ab,
die dem Publisher und dem Subscriber zur Verfügung stehen.
Sie können die anfänglich bevorzugte Bildrate festlegen, indem Sie die preferredFrameRate
Eigenschaft des options Objekt, das Sie an die Session.subscribe()
Methode.
Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
frameRate |
Numbers | Stellen Sie hier die gewünschte Bildrate (in Bildern pro Sekunde) ein. Stellen Sie hier null um die bevorzugte Bildrate zu deaktivieren; der Client verwendet dann die höchste verfügbare Bildrate. |
Siehe: : - Subscriber.setPreferredResolution() - Session.subscribe()
Rückgabe:
Ein Promise, das aufgelöst wird, sobald die bevorzugte Bildrate
erfolgreich angewendet wurde, oder mit einem Error unter den folgenden Bedingungen:
- Der Abonnent wurde gelöscht oder ist noch nicht mit einem Herausgeber verbunden.
- Die Sitzung nutzt den Peer-to-Peer-Medienmodus, der diese Funktion nicht unterstützt.
- Die Aktualisierung des zugrunde liegenden Streams schlägt fehl.
setPreferredResolution(resolution) → {Promise.<void>}
Legt die bevorzugte Auflösung des Videos des Abonnenten fest.
Das Verringern der bevorzugten Auflösung verschlechtert zwar die Videoqualität auf dem abonnierenden Client, reduziert aber auch die Netzwerk- und CPU-Auslastung. Möglicherweise möchten Sie eine niedrigere Auflösung verwenden, die sich nach den Abmessungen des Videos des Abonnenten auf der Webseite richtet. Möglicherweise möchten Sie für einen Abonnenten eines Streams eine Auflösung verwenden, der weniger wichtig (und kleiner) ist als andere Streams.
Diese Methode gilt nur beim Abonnieren eines Streams, der die Skalierbare Videofunktion. Skalierbare Videos sind verfügbar:
- Nur in Sitzungen, die den Vonage Video API Media Router verwenden (Sitzungen mit dem Medien Modus auf geroutet gesetzt).
- Gilt nur für Streams, die von Clients veröffentlicht werden, die skalierbares Video unterstützen: Clients, die das Vonage Video API iOS SDK (auf bestimmten Geräten), das Vonage Video API Android SDK (auf bestimmten Geräten) oder OpenTok.js in Chrome und Safari verwenden.
Bei Streams, die kein skalierbares Video verwenden, hat der Aufruf dieser Methode keine Auswirkung.
Anmerkung: Die Auflösung für skalierbare Videostreams wird für jeden Abonnenten automatisch an die Netzwerkbedingungen und die CPU-Auslastung angepasst, auch wenn Sie diese Methode nicht aufrufen. Rufen Sie diese Methode auf, wenn Sie eine maximale Auflösung für diesen Abonnenten festlegen möchten.
Bei Streams, die kein skalierbares Video verwenden, hat der Aufruf dieser Methode keine Auswirkung.
Nicht jede Bildrate steht einem Abonnenten zur Verfügung. Wenn Sie die bevorzugte Auflösung für
den Abonnenten festlegen, wählt OpenTok.js die beste verfügbare Auflösung aus, die Ihrer Einstellung entspricht.
Die verfügbaren Auflösungen richten sich nach dem Wert des Subscriber-Objekts
stream.resolution Eigenschaft, die die für
den Stream verfügbare maximale Auflösung angibt. Die tatsächlich verfügbaren Auflösungen hängen dynamisch von den Netzwerk- und CPU-Ressourcen ab,
die dem Publisher und dem Subscriber zur Verfügung stehen.
Sie können die anfänglich bevorzugte Auflösung festlegen, indem Sie die
preferredResolution Eigenschaft der options Objekt, das Sie an die
Session.subscribe() Methode.
Anmerkung: Wenn Sie die bevorzugte Anfangsauflösung auf "auto" beim Aufruf
Session.subscribe(), indem man setPreferredResolution() schlägt ohne Fehlermeldung fehl,
und Sie erhalten eine Warnung.
Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
resolution |
Objekt | Setzen Sie dies auf ein Objekt mit zwei Eigenschaften: width und height (beide Numbers), wie zum Beispiel {width: 320, height: 240}. Stellen Sie dies auf null um die bevorzugte Auflösung zu deaktivieren; der Client verwendet dann die höchste verfügbare Auflösung. |
Siehe: : - Subscriber.setPreferredFrameRate() - Session.subscribe()
Rückgabe:
Ein Promise, das sich auflöst, sobald die bevorzugte Auflösung
erfolgreich angewendet wurde, oder mit einem Error unter den folgenden Bedingungen:
- Der Abonnent wurde initialisiert mit
preferredResolution: 'auto'. - Der Wert
'auto'wird direkt an diese Methode übergeben. - Der Abonnent wurde gelöscht oder ist noch nicht mit einem Herausgeber verbunden.
- Die Sitzung nutzt den Peer-to-Peer-Medienmodus, der diese Funktion nicht unterstützt.
setStyle(style, value) → {Abonnent}
Legt Eigenschaften fest, die das Erscheinungsbild einiger Steuerelemente der Benutzeroberfläche des Subscribers 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:
audioBlockedDisplayMode(Zeichenkette) — Gibt an, ob das Standard-Symbol für blockierten Ton in „Abonnenten“ angezeigt werden soll (in Browsern, in denen die automatische Wiedergabe von Audio blockiert ist). Mögliche Werte sind:"auto"(das Standard- Symbol wird angezeigt, wenn der Ton deaktiviert ist) und"off"(Das Symbol wird nicht angezeigt). Setzen Sie dies auf"off"Wenn Sie ein eigenes UI-Element anzeigen möchten, das darauf hinweist, dass der Ton blockiert ist. Als Reaktion auf ein HTML-Element, das einclickEreignis können Sie die OT.unblockAudio() Methode zum Starten der Audiowiedergabe in diesem und allen anderen blockierten Abonnenten.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).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 SiesubscribeToVideo(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 Subscriber.getImgData() Methode (Sie könnten beispielsweisemySubscriber.setStyle("backgroundImageURI", mySubscriber.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) — Wie die Lautsprechersteuerelemente angezeigt werden sollen. 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).videoDisabledDisplayMode(Zeichenkette) — Gibt an, ob die Anzeige der „Video deaktiviert“-Anzeige und der Warnsymbole für ein deaktiviertes Video für einen Abonnenten aktiviert werden soll. Diese Symbole zeigen an, dass das Video aufgrund schlechter Stream-Qualität deaktiviert wurde (bzw. bei dem Warnsymbol, dass die Gefahr einer Deaktivierung besteht). Mögliche Werte sind:"auto"(Die Symbole werden automatisch angezeigt, wenn das angezeigte Video deaktiviert ist oder aufgrund einer schlechten Stream-Qualität möglicherweise deaktiviert wird),"off"(Symbole nicht anzeigen) und"on"(Symbole anzeigen).
Der folgende Code übergibt beispielsweise einen Parameter an die Methode:
mySubscriber.setStyle({nameDisplayMode: "off"});
Wenn Sie zwei Parameter übergeben, style und value, es handelt sich um Schlüssel-Wert-Paare,
die eine Eigenschaft des Darstellungsstils definieren. Der folgende Code übergibt beispielsweise
zwei Parameterwerte an die Methode:
mySubscriber.setStyle("nameDisplayMode", "off");
Sie können die Anfangseinstellungen vornehmen, wenn Sie die Session.subscribe() 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.subscribe()
Rückgabe:
Das „Subscriber“-Objekt.
setVideoMediaProcessorConnector(mediaProcessorConnector) → {Promise}
Legt einen „MediaProcessorConnector“ für die Videospur des Abonnenten fest. Ein Abonnent kann nur eine Videospur haben. MediaProcessorConnector wird jeweils nur einmal angewendet. Wenn Sie einen neuen Anschluss festlegen, wird der zuvor festgelegte Videoanschluss entfernt.
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 und iOS WebView unterstützt. Sie können überprüfen, ob der Client diese Funktion unterstützt, indem Sie die OT.hasMediaProcessorSupport('video') Methode.
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.
- 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.
subscribeToAudio(value) → {Abonnent}
Schaltet den Ton ein und aus. Startet das Abonnieren des Audiokanals (sofern dieser verfügbar ist und derzeit
noch nicht abonniert wird), wenn die value ist true; beendet
das Abonnieren des Audio-Feeds (sofern dieser derzeit abonniert ist), wenn die value
ist false.
Anmerkung: Diese Methode wirkt sich nur auf die lokale Wiedergabe von Audio aus. Sie hat keine Auswirkungen auf das Audio für andere Verbindungen, die denselben Stream abonnieren. Wenn der Publisher kein Audio veröffentlicht, hat die Aktivierung des Subscriber-Audios keine praktischen Auswirkungen.
Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
value |
Boolesche | Ob man den Audio-Feed abonnieren soll (true) oder nicht (false). |
Siehe: : - subscribeToVideo() - Session.subscribe() - StreamPropertyChangedEvent
Rückgabe:
Das „Subscriber“-Objekt. Damit lassen sich Methodenaufrufe verketten, wie im folgenden Beispiel:
mySubscriber.subscribeToAudio(true).subscribeToVideo(false);
subscribeToCaptions(Wert) → {Promise.<void>}
Schaltet Untertitel ein und aus. Startet das Abonnieren von Untertiteln (sofern diese verfügbar sind und derzeit
noch nicht abonniert werden), wenn die value ist true; beendet
das Abonnieren von Untertiteln (sofern diese derzeit abonniert sind), wenn die value
ist false.
Der Anfangswert kann durch Einstellen des subscribeToCaptions
Eigenschaft des options Parameter des Session.subscribe()
Methode. Der Standardwert ist der hasCaptions Eigenschaft des Stream-Verlegers zum Zeitpunkt der
Initialisierung des Abonnenten (siehe die
Eigenschaft „Stream.hasCaptions“).
Weitere Informationen finden Sie in der Live-Unterschriften Leitfaden für Entwickler.
Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
value |
Boolesche | Ob man Untertitel abonnieren soll (true) oder nicht (false). |
Siehe: : - isSubscribedToCaptions() - Bildunterschrift: Empfangen Veranstaltung - StreamPropertyChangedEvent - Session.subscribe()
Rückgabe:
Ein Promise, das erfüllt wird, sobald der Server die Aktualisierung des Caption-Kanals bestätigt hat. Das Promise wird abgelehnt, wenn beim Senden der Aktualisierung ein Fehler auftritt.
subscribeToVideo(value) → {Abonnent}
Schaltet das Video ein bzw. aus. Startet das Abonnieren des Videos (sofern es verfügbar ist und
derzeit noch nicht abonniert wird), wenn das value ist true;
beendet das Abonnieren des Videos (sofern es derzeit abonniert ist), wenn das
value ist false.
Anmerkung: Diese Methode wirkt sich nur auf die lokale Wiedergabe des Videos aus. Sie hat keine Auswirkungen auf das Video für andere Verbindungen, die denselben Stream abonnieren. Wenn der Publisher kein Video veröffentlicht, hat die Aktivierung des Subscriber-Videos keine praktischen Auswirkungen.
Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
value |
Boolesche | Ob man den Videokanal abonnieren soll (true) oder nicht (false). |
Siehe: : - subscribeToAudio() - Session.subscribe() - StreamPropertyChangedEvent
Rückgabe:
Das „Subscriber“-Objekt. Damit lassen sich Methodenaufrufe verketten, wie im folgenden Beispiel:
mySubscriber.subscribeToVideo(true).subscribeToAudio(false);
videoHeight() → {Number}
Gibt die tatsächlich empfangene Höhe des Abonnentenvideos in Pixeln zurück. Dies entspricht der dekodierten Auflösung des eingehenden Videostreams, die aufgrund von Netzwerk- oder CPU-Anpassungen oder der Auswahl der skalierbaren Videoebene von der Aufnahmeauflösung des Anbieters abweichen kann. Verwenden Sie diese Methode, um die tatsächliche Auflösung zu ermitteln, die für diesen Abonnenten wiedergegeben wird.
Weitere Informationen zur Überwachung der Gewässerqualität finden Sie unter Beobachtbarkeit der Kunden Leitfaden für Entwickler.
Siehe: : - Subscriber.getStats()
Rückgabe:
Die tatsächlich empfangene Höhe des Teilnehmervideos in Pixeln.
videoWidth() → {Number}
Gibt die tatsächlich empfangene Breite des Abonnentenvideos in Pixeln zurück. Dies entspricht der dekodierten Auflösung des eingehenden Videostreams, die aufgrund von Netzwerk- oder CPU-Anpassungen oder der Auswahl einer skalierbaren Videoebene von der Aufnahmeauflösung des Herausgebers abweichen kann. Verwenden Sie diese Methode, um die tatsächliche Auflösung zu ermitteln, die für diesen Abonnenten wiedergegeben wird.
Weitere Informationen zur Überwachung der Gewässerqualität finden Sie unter Beobachtbarkeit der Kunden Leitfaden für Entwickler.
Siehe: : - Subscriber.getStats()
Rückgabe:
Die tatsächlich empfangene Breite des Teilnehmervideos in Pixeln.
Veranstaltungen
audioBlocked
Wird ausgelöst, wenn der Ton des Abonnenten aufgrund der Autoplay-Richtlinie des Browsers blockiert wird.
Siehe:
: - OT.unblockAudio()
- Subscriber.isAudioBlocked()
- Die audioUnblocked Veranstaltung
– Die style.audioBlockedDisplayMode Eigenschaft der
options Parameter des
Session.subscribe() Methode)
audioLevelUpdated
Wird regelmäßig gesendet, um den Audiopegel des Abonnenten 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 Teilnehmers anzeigt. Beachten Sie, dass der Audiopegel logarithmisch angepasst wird und ein gleitender Durchschnitt angewendet wird:
var movingAvg = null;
subscriber.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('subscriberMeter').value = logLevel;
});
Dieses Beispiel veranschaulicht den Algorithmus, der von der standardmäßigen Audiopegelanzeige verwendet wird, die in einem reinen Audio-Subscriber angezeigt wird.
Siehe: : - AudioLevelUpdatedEvent
audioUnblocked
Wird ausgelöst, wenn der Ton des Abonnenten wieder freigegeben wird, nachdem er aufgrund der Autoplay-Richtlinie des Browsers pausiert wurde.
Der Ton des Teilnehmers wird freigegeben, wenn einer der folgenden Fälle eintritt:
- Der Benutzer klickt auf das Standardsymbol für die Audiowiedergabe des Teilnehmers
- Die OT.unblockAudio()
Die Methode wird als Reaktion darauf aufgerufen, dass ein HTML-Element
ein
clickEreignis (falls Sie das standardmäßige Symbol für die Audiowiedergabe deaktiviert haben) - Der lokale Client erhält Zugriff auf die Kamera oder das Mikrofon
(beispielsweise als Reaktion auf einen erfolgreichen Aufruf von
OT.initPublisher()).
Siehe:
: - OT.unblockAudio()
- Die audioBlocked Veranstaltung
– Die style.audioBlockedDisplayMode Eigenschaft der
options Parameter des
Session#subscribe() Methode)
Bildunterschrift: Empfangen
Wird gesendet, wenn der Abonnent eine Untertitelung vom Transkriptionsdienst erhält.
Sie müssen zunächst die Subscriber.subscribeToCaptions()
Methode (und der Anbieter des Streams muss Untertitel bereitstellen), bevor Sie
captionReceived Veranstaltungen.
Siehe: : - CaptionReceivedEvent - Live-Untertitel
verbunden
Wird gesendet, wenn der Stream des Abonnenten wieder aufgenommen wurde, nachdem der Abonnent ein
disconnected Veranstaltung.
Siehe: : - unabhängiges Ereignis - Veranstaltung
zerstört
Wird ausgelöst, wenn das „Subscriber“-Element aus dem HTML-DOM entfernt wird. Wenn dieses Ereignis ausgelöst wird, können Sie HTML-DOM-Elemente, die mit dem „Subscriber“ in Verbindung stehen, anpassen oder entfernen.
Um zu verhindern, dass der Abonnent beim Zerstören des Streams aus dem DOM entfernt wird,
sollte auf das Ereignis „streamDestroyed“
vom Session-Objekt ausgelöst. Das streamDestroyed Ein vom
Session-Objekt ausgelöstes Ereignis kann abgebrochen werden, und durch den Aufruf der preventDefault() Die Methode des
Ereignisobjekts verhindert, dass Abonnenten des Streams aus dem HTML-DOM entfernt werden.
Siehe: : - Veranstaltung
getrennt
Wird gesendet, wenn der Stream des Abonnenten unterbrochen wurde.
Als Reaktion auf dieses Ereignis möchten Sie möglicherweise eine Benachrichtigung über die Benutzeroberfläche anzeigen, um den Benutzer darüber zu informieren, dass die Verbindung zum Audio-Video-Stream vorübergehend unterbrochen ist und dass die App versucht, die Verbindung wiederherzustellen.
Wenn der Client die Verbindung zum Stream wiederherstellt, löst das Subscriber-Objekt ein
connected Ereignis. Andernfalls, wenn der Client die Verbindung zum Stream nicht wiederherstellen kann,
löst das Subscriber-Objekt ein destroyed Veranstaltung.
Siehe: : - verbundenes Ereignis - Veranstaltung
encryptionSecretMatch
Wird ausgelöst, wenn die Medien eines Abonnenten entschlüsselt werden können, da die Verschlüsselungsschlüssel übereinstimmen. Dies wird nur ausgelöst, wenn zuvor eine Nichtübereinstimmung der Schlüssel vorlag.
Siehe: : - Veranstaltung - Verschlüsselungs-Geheimnis-Nichtübereinstimmung Veranstaltung - OT.initSession - session.setEncryptionSecret
Verschlüsselungs-Geheimnis-Nichtübereinstimmung
Wird ausgegeben, wenn die Medien eines Abonnenten nicht entschlüsselt werden können, da die Verschlüsselungsschlüssel nicht übereinstimmen. In diesem Fall ist der Nutzer zwar weiterhin für den Stream abonniert, aber das Video bleibt schwarz und der Ton ist stumm. Es gilt als bewährte Vorgehensweise, dem Nutzer mitzuteilen, warum die Medien nicht angezeigt werden können.
Siehe: : - Veranstaltung - encryptionSecretMatch Veranstaltung - OT.initSession - session.setEncryptionSecret
mediaStreamAvailable
Wird gesendet, sobald der MediaStream verfügbar ist.
Siehe: : - Veranstaltung
networkConditionChanged
Wird ausgelöst, wenn eine Änderung der Netzwerkbedingungen für den Teilnehmer oder den Remote-Publisher festgestellt wird.
Die aktuelle Implementierung löst dieses Ereignis nur aus, wenn sich die Netzwerkbedingungen auf einer der beiden Seiten geändert haben.
Diese Veranstaltung unterscheidet sich von videoDisabled und videoEnabled Ereignisse, da es Änderungen des Netzwerkzustands
und nicht Änderungen des Status der Videospur des Teilnehmers 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"stats— Objekt, das eine vollständige Momentaufnahme der aktuellen Statistiken enthält und genau so aufgebaut ist wie das Objekt, das von einemgetStats()Aufruf, einschließlich Netzwerkstatus und Grund für lokale und entfernte Transport-/Netzwerkprobleme sowie die Ursache der Netzwerkbeeinträchtigung.
Siehe: : - Veranstaltung
qualityScoreChanged
Wird gesendet, wenn sich entweder die Audio- oder die Videoqualitätsbewertung geändert hat. Die Bewertungen sind heuristische Werte, die das erwartete Nutzererlebnis widerspiegeln. Die Werte reichen von 5 bis 1, wobei die ganzzahligen Werte den Stufen „Ausgezeichnet“ | „Gut“ | „Befriedigend“ | „Mangelhaft“ | „Schlecht“ entsprechen.
Siehe: : - QualityScoreChangedEvent
videoDimensionsChanged
Wird gesendet, wenn die stream.videoDimensions Die Eigenschaft wird vom
Publisher aktualisiert. Dies geschieht, wenn das lokale Video-Element des Publishers eine Größenänderung erkennt
und die Aktualisierung an alle Sitzungsteilnehmer signalisiert. Beispiele für mögliche Ursachen hierfür:
- 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.
Hinweis: Diese Maße entsprechen den Angaben des Verlags. Erfassung Auflösung (das, was der Anbieter codiert und überträgt), nicht die tatsächlich vom Abonnenten decodierte Auflösung. Die decodierte Auflösung kann aufgrund von Netzwerkanpassung oder skalierbarer Videocodierung abweichen. Verwenden Sie Abonnent#videoWidth und Abonnent#videoHeight für die tatsächlich erhaltene Auflösung.
Siehe: : - VideoDimensionsChangedEvent
videoDeaktiviert
Wird gesendet, wenn das Video für den Abonnenten deaktiviert ist.
Die reason Die Eigenschaft gibt den Grund an, warum das Video deaktiviert wurde. Hierfür stehen
folgende Werte zur Auswahl:
-
"codecNotSupported"— Der Browser des Kunden unterstützt den vom Stream verwendeten Videocodec nicht. Wenn Sie beispielsweise in Safari eine Verbindung zu einer weitergeleitete Sitzung in einem Vonage Video API (außer Safari) Projekt, und wenn Sie versuchen, einen Stream zu abonnieren, der Videos enthält, sendet der Subscriber einevideoDisabledEreignis mit demreasonEigenschaft auf"codecNotSupported". (Bei weitergeleiteten Sitzungen in einem Nicht-Safari-Projekt verwenden die Streams den VP8-Videocodec, der in Safari nicht unterstützt wird.) Das „subscriber“-Element zeigt zudem die Meldung „Videoformat wird nicht unterstützt“ an. (Siehe OT.getSupportedCodecs().) -
"publishVideo"— Der Verlag stellte die Veröffentlichung von Videos ein, indem er anriefpublishVideo(false). -
"quality"— Der Vonage Video Media Router oder der Publishing-Client hat die Videoübertragung an den Teilnehmer aufgrund von Änderungen der Stream-Qualität infolge einer Verschlechterung der Verbindung eingestellt.Bei weitergeleiteten Sitzungen kann die Quelle dieses Ereignisses der Vonage Video Media Router (Subscriber Audio Fallback) oder der veröffentlichende Client (Publisher Audio Fallback) sein. In beiden Fällen wird der Videostream speziell für den betroffenen Teilnehmer unterbrochen, während der Audiostream (sofern vorhanden) ununterbrochen weiterläuft. Wenn die Ursache der publizierende Client ist, folgt auf das Ereignis ein
streamPropertyChangedEin vom Session-Objekt ausgelöstes Ereignis, das anzeigt, dass der abonnierte Videokanal nicht mehr aktiv ist. Im Allgemeinen deutet dieses zusätzliche Ereignis auf eine Verschlechterung der Netzwerkqualität auf Seiten des Publishers hin; allerdings können vom Abonnenten gemeldete Metriken die Fallback-Entscheidungen des Publishers beeinflussen, was die Ermittlung der genauen Ursache für die Verschlechterung erschweren kann.Bei weitergeleiteten Sitzungen wird die
"quality"Das Ereignis wird ausschließlich durch die interne Audio-Fallback-Logik des Publishers (Publisher Audio Fallback) ausgelöst. Auf dieses Ereignis folgt kein …streamPropertyChangedEreignis, das darauf hinweist, dass das Video inaktiv ist, da der Stream möglicherweise weiterhin von anderen Abonnenten mit besseren Netzwerkbedingungen empfangen wird. Beachten Sie, dass bei weitergeleiteten Sitzungen die Audio-Fallback-Ereignisse zwar vom Publisher ausgehen, eine Verschlechterung der Netzwerkqualität jedoch sowohl auf der Publisher- als auch auf der Abonnentenseite auftreten kann.Bevor dieses Ereignis gesendet wird, sendet der Abonnent – sobald sich die Stream-Qualität auf ein Niveau verschlechtert, das so niedrig ist, dass die Gefahr besteht, dass der Videostream deaktiviert wird – ein
videoDisableWarningVeranstaltung.Sollte sich die Verbindung wieder so weit verbessern, dass die Wiedergabe von Videos möglich ist, löst das „Subscriber“-Objekt ein
videoEnabledEreignis, und der Abonnent empfängt wieder Videos.Standardmäßig zeigt der Abonnent eine Anzeige für deaktivierte Videos an, wenn ein
videoDisabledEin Ereignis mit diesem Grund wird ausgelöst und hebt die Markierung auf, wenn dasvideoEnabledEin Ereignis mit diesem Grund wird ausgelöst. Sie können die Anzeige dieses Symbols steuern, indem Sie diesetStyle()Methode des Abonnenten, dievideoDisabledDisplayModeEigenschaft (oder Sie können den Stil beim Aufruf derSession.subscribe()Methode, wobei diestyleEigenschaft despropertiesParameter).Sie können das Fallback-Verhalten bei reiner Audioübertragung steuern, indem Sie die
audioFallbackEigenschaft des anOT.initPublisher()auf der Seite des Publishers. Standardmäßig ist das Audio-Fallback für Teilnehmer aktiviert (außer bei der Bildschirmfreigabe, wo es standardmäßig deaktiviert ist) und das Audio-Fallback für den Publisher ist deaktiviert. Um dies zu ändern, legen SieaudioFallback.subscriberzufalseum den Teilnehmer-Fallback zu deaktivieren, oder legen SieaudioFallback.publisherzutrueum den Publisher-Fallback zu aktivieren. (Siehe OT.initPublisher().) -
"subscribeToVideo"— Der Abonnent hat das Abonnement für Videos durch einen AnrufsubscribeToVideo(false).
Siehe: : - VideoEnabledChangedEvent - videoDisableWarning Veranstaltung - videoEnabled Veranstaltung
videoDisableWarning
Wird ausgelöst, wenn der Vonage Video API Media Router feststellt, dass sich die Stream-Qualität verschlechtert hat,
und das Video deaktiviert wird, falls sich die Qualität weiter verschlechtert. Sollte sich die Qualität weiter verschlechtern,
deaktiviert der Teilnehmer das Video und löst ein videoDisabled Veranstaltung.
Standardmäßig zeigt der Abonnent 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 und Festlegen der
videoDisabledDisplayMode Eigenschaft (oder Sie können den Stil beim Aufruf
der Session.subscribe() Methode und Festlegen der style Eigenschaft
des properties Parameter).
Diese Funktion ist nur in Sitzungen verfügbar, die den Vonage Video API Media Router verwenden (Sitzungen mit dem Medienbetrieb (auf „routed“ gesetzt), nicht in Sitzungen, bei denen der Medienmodus auf „relayed“ gesetzt ist.
Siehe: : - Veranstaltung - videoDeaktiviert Veranstaltung - videoDisableWarningLifted Veranstaltung
videoDisableWarningLifted
Wird ausgelöst, wenn der Vonage Video API Media Router feststellt, dass sich die Stream-Qualität so weit verbessert hat,
dass die Deaktivierung des Videos kein unmittelbares Risiko mehr darstellt. Dieses Ereignis wird
ausgelöst, nachdem das Subscriber-Objekt ein videoDisableWarning Veranstaltung.
Diese Funktion ist nur in Sitzungen verfügbar, die den Vonage Video API Media Router verwenden (Sitzungen mit dem Medienbetrieb (auf „routed“ gesetzt), nicht in Sitzungen, bei denen der Medienmodus auf „relayed“ gesetzt ist.
Siehe: : - Veranstaltung - videoDisableWarning Veranstaltung - videoDeaktiviert Veranstaltung
videoElementCreated
Wird ausgelöst, wenn das Video-Element des Abonnenten erstellt wird. Fügen Sie einen Listener für dieses Ereignis hinzu, wenn
Sie das insertDefaultUI Option zu false im Aufruf der
Session.subscribe() Methode. Die Website element
Die Eigenschaft des Ereignisobjekts ist ein Verweis auf den Abonnenten 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 object) 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 Subscriber-Objekt zerstört.
Siehe: : - VideoElementCreatedEvent
videoEnabled
Wird ausgelöst, wenn der Vonage Video API Media Router die Videoübertragung an den Teilnehmer wieder aufnimmt, nachdem das Video zuvor deaktiviert worden war.
Die reason Die Eigenschaft definiert den Grund, aus dem das Video aktiviert wurde. Hierfür kann
einer der folgenden Werte festgelegt werden:
-
"codecChanged"— Das Abonnentenvideo wurde nach einer Codec-Umstellung von einem inkompatiblen Codec freigeschaltet. -
"publishVideo"— Der Verlag begann mit der Veröffentlichung von Videos, indem er anriefpublishVideo(true). -
"quality"— Der Vonage Video API Media Router hat die Videoübertragung an den Teilnehmer aufgrund von Änderungen der Stream-Qualität wieder aufgenommen. Diese Funktion des Vonage Video API Routers sorgt dafür, dass der Teilnehmer den Videostream unterbricht, wenn sich die Verbindung verschlechtert, und den Videostream wieder aufnimmt, sobald sich die Stream-Qualität verbessert.Diese Funktion ist nur in Sitzungen verfügbar, die den Vonage Video API Media Router verwenden (Sitzungen mit dem Medienbetrieb (auf „routed“ gesetzt), nicht in Sitzungen, bei denen der Medienmodus auf „relayed“ gesetzt ist.
-
"subscribeToVideo"— Der Abonnent hat das Abonnement für Videos durch einen AnrufsubscribeToVideo(false).
Siehe: : - VideoEnabledChangedEvent - videoDeaktiviert Veranstaltung
videoQualityChanged
Wird gesendet, wenn eine Unterbrechung der Videoqualität – eine Pause – oder ein Codec-Wechsel festgestellt wird.
Einfrierungen werden intern erfasst und in Statistiken ausgewiesen, jedoch wird nicht bei jedem Einfrieren ein Ereignis ausgelöst, da diese nur von kurzer Dauer sind und sehr häufig auftreten können.
Ein Ereignis wird nur ausgelöst, wenn eine Pause erkannt wird (z. B. wenn 5 Sekunden oder länger kein Bild gerendert wird), da dies eine größere Störung bei der Medienwiedergabe darstellt.
Diese Veranstaltung unterscheidet sich von videoDisabled und videoEnabled Abonnentenereignisse, bei denen
es über Änderungen berichtet, die die Videoqualität betreffen. videoDisabled und videoEnabled „only“
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ätsverluste,
wie beispielsweise die Anzahl der Einfrierungen und Pausen sowie aktualisierte Statistiken.
Dieses Ereignis berücksichtigt alle Arten von Videounterbrechungen, die 5 Sekunden oder länger dauern. Das bedeutet, dass im
konkreten Fall eines Audio-Fallbacks oder von Änderungen an den Stream-Eigenschaften (wie z. B. der Deaktivierung des Videos) zusätzlich zur Auslösung
des videoEnabled und videoDisabled Bei solchen Ereignissen wird die Unterbrechung auch als
Pause in der Videostatistik erfasst, und ein entsprechendes Ereignis zur Änderung der Videoqualität wird ausgelöst,
sobald das Video wieder verfügbar ist.
Die reason Die Eigenschaft definiert den Grund für die Änderung der Videoqualität. Hierfür stehen folgende
Werte zur Auswahl:
"videoInterruption"— Zeigt an, dass ein neues Pausenereignis erkannt wurde"codecChange"— Zeigt an, dass sich der Videocodec geändert hat
Die stats 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() Anruf, einschließlich Pausen und
Stillständen, sofern vorhanden.
Siehe: : - Veranstaltung