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:

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 ein click Ereignis 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 Sie subscribeToVideo(false) (im Publisher-Objekt). Sie können eine HTTP- oder HTTPS-URI an den Speicherort einer PNG-, JPEG- oder nicht animierten GIF-Datei übergeben. Sie können auch die data URI-Schema (anstelle von http oder https) und übergeben Sie Base-64-verschlüsselte PNG-Daten, wie sie beispielsweise aus der Subscriber.getImgData() Methode (Sie könnten beispielsweise mySubscriber.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 click Ereignis (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 einem getStats() 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.videoType wird eingestellt auf "screen" (Bildschirmfreigabe) und der Benutzer ändert die Größe des erfassten Fensters.
  • Wenn das Video über ein Mobilgerät veröffentlicht wird und der Nutzer das Gerät dreht, wodurch sich die Ausrichtung der Kamera ändert.
  • Wenn der Verleger anruft Publisher#setPreferredResolution, indem man die Auflösung der Zielerfassung ändert.

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

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 eine videoDisabled Ereignis mit dem reason Eigenschaft 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 anrief publishVideo(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 streamPropertyChanged Ein 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 … streamPropertyChanged Ereignis, 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 videoDisableWarning Veranstaltung.

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

    Standardmäßig zeigt der Abonnent 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 setStyle() Methode des Abonnenten, die videoDisabledDisplayMode Eigenschaft (oder Sie können den Stil beim Aufruf der Session.subscribe() Methode, wobei die style Eigenschaft des properties Parameter).

    Sie können das Fallback-Verhalten bei reiner Audioübertragung steuern, indem Sie die audioFallback Eigenschaft des an OT.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 Sie audioFallback.subscriber zu false um den Teilnehmer-Fallback zu deaktivieren, oder legen Sie audioFallback.publisher zu true um den Publisher-Fallback zu aktivieren. (Siehe OT.initPublisher().)

  • "subscribeToVideo" — Der Abonnent hat das Abonnement für Videos durch einen Anruf subscribeToVideo(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 anrief publishVideo(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 Anruf subscribeToVideo(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