Audio-Fallback – Web
Verwenden Sie die OpenTok-Audio-Fallback-API, um die Audioübertragung je nach Netzwerkqualität dynamisch zu priorisieren.
Für konzeptionelle Informationen, siehe die Audio-Fallback-Übersicht.
Anmerkung: Die audioFallbackEnabled Eigenschaft der Optionen, die an die OT.initPublisher() Methode wird veraltet sein. Bitte verwenden Sie die audioFallback.subscriber Eigenschaft des options-Objekts.
Dieses Thema umfasst die folgenden Abschnitte:
Aktivieren und Deaktivieren des Fallbacks für reine Audioübertragung
Bei der Initialisierung des Publisher-Objekts setzen Sie die audioFallback Eigenschaft der Option, die Sie an die OT.initPublisher() Methode:
// Enable publisher audio fallback
const publisher = OT.initPublisher('target', {
audioFallback: {
publisher: true,
}
});
// Enable publisher audio fallback and disable subscriber audio fallback
const publisher = OT.initPublisher('target', {
audioFallback: {
publisher: true,
subscriber: false,
}
});
// Enable subscriber audio fallback and disable publisher audio fallback
const publisher = OT.initPublisher('target', {
audioFallback: {
publisher: false,
subscriber: true,
}
});
Die audioFallback Eigenschaft der Optionen, die Sie in der OT.initPublisher() Methode enthält zwei boolesche Eigenschaften:
publisher- Ob Sie aktivieren (true) oder deaktivieren (false) Herausgeber Audio Fallback. Der Standard istfalse(Audio-Fallback des Herausgebers ist deaktiviert).subscriber- Ob Sie aktivieren (true) oder deaktivieren (false) Teilnehmer-Audio-Fallback. Diese Einstellung gilt nur für geroutete Sitzungen (Sitzungen, die den Vonage Video-Media-Router). Der Audio-Fallback für Teilnehmer wird in weitergeleiteten Sitzungen nicht unterstützt. Die Standardeinstellung isttrue(Audio-Fallback für Abonnenten ist aktiviert). Diese Einstellung ersetzt dieaudioFallbackEnabledEigenschaft, die veraltet sein wird.
Audio-Fallback-Ereignisse und UI-Anzeigen
Wenn das Publisher-Audio-Fallback aktiviert ist, sendet das Publisher-Objekt diese Ereignisse als Reaktion auf wechselnde Qualitätsbedingungen:
videoDisableWarning- Wird versendet, wenn der Herausgeber feststellt, dass sich die Qualität des Streams verschlechtert hat, und das Video deaktiviert wird, wenn sich die Qualität weiter verschlechtert.videoDisableWarningLifted- Wird gesendet, wenn der Herausgeber feststellt, dass sich die Qualität des Streams soweit verbessert hat, dass das deaktivierte Video kein unmittelbares Risiko mehr darstellt.videoDisabled- Wird versendet, wenn der Herausgeber feststellt, dass die Qualität des Streams sich verschlechtert hat und der ausgehende Videotransport deaktiviert wurde. Hinweis: Auch wenn das Video deaktiviert ist, zeigt der Veröffentlicher das Veröffentlichungsvideo (z. B. das Kamerabild) in der Benutzeroberfläche des Veröffentlichungsclients an.videoEnabled- Wird mit dem Grund "Qualität" versandt, wenn der Herausgeber feststellt, dass sich die Qualität des Streams verbessert hat und der ausgehende Videotransport wieder aktiviert wurde.
Standardmäßig zeigt der Publisher Symbole an, wenn die videoDisableWarning und videoDisabled Ereignisse auftreten.
Die style Eigenschaft der options Parameter für OT.initPublisher() enthält jetzt eine videoDisabledDisplayMode Eigenschaft. Sie können die videoDisabledDisplayMode Die Zuweisung dieser Eigenschaft zu einem der folgenden Zeichenfolgenwerte steuert, wie die Standardelemente der Benutzeroberfläche angezeigt werden:
auto(Standard) — Die Symbole werden automatisch angezeigt, wenn das Video deaktiviert ist oder aufgrund schlechter Stream-Qualität deaktiviert zu werden droht.off- Die Icons werden nicht angezeigt. Sie können auf der Grundlage der oben beschriebenen Ereignisse Ihre eigenen Benachrichtigungen auf der Benutzeroberfläche anzeigen.on— Die Symbole werden automatisch angezeigt, wenn das Video deaktiviert ist oder aufgrund schlechter Stream-Qualität deaktiviert zu werden droht.
Der folgende Code deaktiviert beispielsweise die standardmäßigen Benutzeroberflächenelemente für deaktivierte Videos und behandelt die entsprechenden Ereignisse (so dass Sie Ihre eigenen Benutzeroberflächenbenachrichtigungen bereitstellen können):
// Enabled
const publisher = OT.initPublisher('target', {
audioFallback: {
publisher: true,
},
style: {
videoDisabledDisplayMode: 'off',
}
});
publisher.on({
videoDisableWarning: () => {
// Custom action — for example, add custom UI notification
},
videoDisableWarningLifted: () => {
// Custom action — for example, remove custom UI notification
},
videoDisabled: () => {
// Custom action — for example, add custom UI notification
},
videoEnabled: () => {
// Custom action — for example, remove custom UI notification
},
});
Sie können auch die videoDisabledDisplayMode Stil dynamisch durch den Aufruf der Publisher.setStyle() Methode:
publisher.setStyle('videoDisabledDisplayMode', 'off');
// Alternately:
publisher.setStyle({
videoDisabledDisplayMode: 'off',
// other styles ...
});
Aus Sicht des Abonnenten deuten die folgenden Ereignisse darauf hin, dass ein Audio-Fallback stattgefunden hat. Obwohl diese Ereignisse an den Abonnenten gebunden sind, können sie sowohl aufgrund eines Audio-Fallbacks auf Abonnentenseite als auch als Folge eines Audio-Fallbacks auf Publisher-Seite auftreten. Mit anderen Worten: Der Unterschied zwischen Audio-Fallback auf Publisher- und Teilnehmerseite besteht darin, dass im Falle des Publishers der Publishing-Client den Audio-Fallback aufgrund einer Verschlechterung seines eigenen Streams auslösen kann, weshalb zusätzliche Ereignisse auf Publisher-Seite gesendet werden. Beim Audio-Fallback auf Abnehmer-Seite bewertet der Vonage Video Media Router die Netzwerkverschlechterung, von der der Abnehmer betroffen ist. In beiden Fällen werden bei einem Audio-Fallback auf Publisher- oder Abnehmer-Seite stets Abnehmer-Ereignisse gesendet, um anzuzeigen, dass für den Empfänger ein Audio-Fallback stattgefunden hat.
Ein Subscriber-Objekt sendet die folgenden Ereignisse in Bezug auf die Aktivierung oder Deaktivierung des Videos für den Stream des Abonnenten:
videoEnabled- Wird ausgelöst, wenn das Video aktiviert wurde, nachdem es zuvor deaktiviert war.videoDisabled- Wird ausgelöst, wenn das Video deaktiviert wurde. Die WebsitereasonEigenschaft des Ereignisobjekts zeigt an, warum das Video deaktiviert wurde. (Dieses Ereignisobjekt ist ein VideoEnabledChangedEvent Objekt).videoDisableWarning— Wird gesendet, wenn festgestellt wird, dass sich die Stream-Qualität verschlechtert hat, und das Video wird deaktiviert, falls sich die Qualität weiter verschlechtert. Verschlechtert sich die Qualität weiter, deaktiviert der Abonnent das Video und sendet einevideoDisabledEreignis. Dieses Ereignis kann auch ausgelöst werden, wenn die Beta-Funktion „Audio-Fallback“ des Publishers verwendet wird und die Stream-Qualität des Publishers nachlässt.videoDisableWarningLifted- Das Video wurde aktiviert, nachdem es zuvor deaktiviert war.
Standardmäßig zeigt der Teilnehmer eine Warnanzeige für deaktivierte Videos und eine Anzeige für deaktivierte Videos an, wenn die videoDisableWarning und videoDisableWarningLifted Ereignisse ausgelöst werden. Sie können die Standardanzeige des Indikators deaktivieren, indem Sie den Parameter videoDisabledDisplayMode Stil-Einstellung des Subscriber-Objekts.
Das folgende Beispiel verwendet die videoDisabledDisplayMode einstellen, dass die Warnanzeige für deaktiviertes Video und die Anzeige für deaktiviertes Video im Sekundentakt blinken, wenn der videoDisableWarning und videoDisableWarningLifted Ereignisse ausgelöst werden:
const indicatorBlinker = new IndicatorBlinker(subscriber);
const IndicatorBlinker = function(subscriber) {
const timer;
const indicatorOn = false;
subscriber.on({
videoDisabled: function(event) {
start();
},
videoDisableWarning: function(event) {
start();
},
videoDisableWarningLifted: function(event) {
stop();
},
videoEnabled: function(event) {
stop();
}
});
const start = function() {
subscriber.setStyle('videoDisabledDisplayMode', 'on');
if (timer) {
clearInterval(timer);
}
timer = setInterval(function() {
if (indicatorOn) {
subscriber.setStyle('videoDisabledDisplayMode', 'off');
} else {
subscriber.setStyle('videoDisabledDisplayMode', 'on');
}
indicatorOn = !indicatorOn;
}, 1000);
indicatorOn = true;
};
const stop = function() {
if (timer) {
clearInterval(timer);
}
};
};
Sie können auch die videoDisabledDisplayMode Stil zu 'off' und fügen Sie Ihre eigenen Elemente der Benutzeroberfläche auf der Grundlage der videoDisableWarning, videoDisabled, videoDisableWarningLiftedund videoEnabled Veranstaltungen.