Verwenden Sie die Audio-Fallback-API, um Audio dynamisch in Abhängigkeit von der Netzwerkqualität zu priorisieren.
Anmerkungen: Die PublisherKit.setAudioFallbackEnabled() und PublisherKit.getAudioFallbackEnabled() Methoden werden veraltet sein. Bitte verwenden Sie die PublisherKit.Builder.publisherAudioFallbackEnabled() und PublisherKit.Builder.subscriberAudioFallbackEnabled() Methoden.
Enabling and disabling audio-only fallback
Um Publisher Audio Fallback zu aktivieren, rufen Sie die PublisherKit.Builder.publisherAudioFallbackEnabled() Funktion bei der Erstellung des Verlags.
// Enable publisher audio fallback
mPublisher = new Publisher.Builder(context)
.publisherAudioFallbackEnabled(true)
.build();
// Enable publisher audio fallback and disable subscriber audio fallback
mPublisher = new Publisher.Builder(context)
.publisherAudioFallbackEnabled(true)
.subscriberAudioFallbackEnabled(false)
.build();
// Enable subscriber audio fallback and disable publisher audio fallback
mPublisher = new Publisher.Builder(context)
.publisherAudioFallbackEnabled(false)
.subscriberAudioFallbackEnabled(true)
.build();
Zum Aktivieren und Deaktivieren des Teilnehmer-Audio-Fallbacks (für alle Teilnehmer des Streams) rufen Sie die Funktion PublisherKit.Builder.subscriberAudioFallbackEnabled() Funktion bei der Erstellung des Verlegers. Subscriber Audio Fallback wird nur in gerouteten Sitzungen unterstützt (Sitzungen, die die Vonage Video-Media-Router). Teilnehmer-Audio-Fallback ist standardmäßig (in gerouteten Sitzungen) für Streams mit einer Kamera-Videoquelle aktiviert.
Audio fallback events
Wenn Publisher Audio Fallback aktiviert ist, werden Callback-Methoden der PublisherKit.VideoListener werden bei Ereignissen im Zusammenhang mit Publisher Audio Fallback aufgerufen:
PublisherKit.VideoListener.onVideoDisableWarning()- Wird aufgerufen, 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.PublisherKit.VideoListener.onVideoDisableWarningLifted()- Wird aufgerufen, wenn der Herausgeber feststellt, dass sich die Qualität des Streams so weit verbessert hat, dass die Deaktivierung des Videos keine unmittelbare Gefahr mehr darstellt.PublisherKit.VideoListener.onVideoDisabled()- Wird aufgerufen, wenn der Verlag feststellt, dass sich die Qualität des Streams verschlechtert hat und der ausgehende Videotransport deaktiviert wurde. Hinweis: Auch wenn das Video deaktiviert ist, zeigt der Publisher das Publisher-Video (z. B. das Kamerabild) in der Benutzeroberfläche des Publishing-Clients an.PublisherKit.VideoListener.onVideoEnabled()- Wird mit dem Grund "Qualität" aufgerufen, wenn der Herausgeber feststellt, dass sich die Qualität des Streams verbessert hat und der ausgehende Videotransport wieder aktiviert wurde. Der folgende Code behandelt beispielsweise die entsprechenden Ereignisse (so dass Sie Ihre eigenen Benachrichtigungen für die Benutzeroberfläche bereitstellen können):
@Override
public void onVideoDisableWarning(PublisherKit publisher) {
// Custom action — for example, add custom UI notification
}
@Override
public void onVideoDisableWarningLifted(PublisherKit publisher) {
// Custom action — for example, remove custom UI notification
}
@Override
public void onVideoDisabled(PublisherKit publisher, String reason) {
// Custom action — for example, add custom UI notification
}
@Override
public void onVideoEnabled(PublisherKit subscriber, String reason) {
// Custom action — for example, remove custom UI notification
}
Aus Sicht des Teilnehmers zeigen die folgenden Ereignisse an, dass ein Audio-Fallback stattgefunden hat. Diese Ereignisse sind zwar an den Obwohl diese Ereignisse an den Teilnehmer gebunden sind, können sie sowohl aufgrund des Audio-Fallbacks des Teilnehmers als auch als Folge des Audio-Fallbacks des Herausgebers auftreten. Mit anderen Worten, der Unterschied zwischen Publisher- und Subscriber-Audio-Fallback besteht darin, dass im Falle des Publishers der Publishing-Client den Audio-Fallback aufgrund seiner eigenen Stream-Verschlechterung auslösen kann, weshalb zusätzliche verlagsseitige Ereignisse ausgelöst werden. Für Subscriber Audio Fallback bewertet der Vonage Video Media Router die Netzwerkverschlechterung, die den Teilnehmer betrifft. In beiden Fällen werden bei Publisher- oder Teilnehmer-Audio-Fallback werden in beiden Fällen immer Teilnehmer-Ereignisse versendet, um anzuzeigen, dass ein Audio-Fallback für den Empfänger stattgefunden hat.
Wenn Audio-Fallback auftritt, werden Callback-Methoden derSubscriberKit.VideoListener werden bei Ereignissen im Zusammenhang mit dem Teilnehmer-Audio-Fallback aufgerufen:
SubscriberKit.VideoListener.onVideoDisableWarning() - Wird aufgerufen, wenn festgestellt wird, dass sich die Qualität des Streams verschlechtert hat und das Video deaktiviert wird, wenn sich die Qualität weiter verschlechtert.
SubscriberKit.VideoListener.onVideoDisableWarningLifted() - Wird aufgerufen, wenn festgestellt wird, dass sich die Qualität des Streams soweit verbessert hat, dass das deaktivierte Video kein unmittelbares Risiko mehr darstellt.
SubscriberKit.VideoListener.onVideoDisabled() - Wird aufgerufen, wenn festgestellt wird, dass sich die Qualität des Streams verschlechtert hat und der ausgehende Videotransport deaktiviert wurde. Hinweis: Während das Video deaktiviert ist, zeigt der Abonnent das Abonnentenvideo (z. B. das Kamerabild) in der Benutzeroberfläche des Veröffentlichungsclients weiterhin an.
SubscriberKit.VideoListener.onVideoEnabled() - Wird mit dem Grund "Qualität" aufgerufen, wenn festgestellt wird, dass sich die Qualität des Streams verbessert hat und der ausgehende Videotransport wieder aktiviert wurde.
Der folgende Code behandelt zum Beispiel die entsprechenden Ereignisse (so dass Sie Ihre eigenen Benachrichtigungen für die Benutzeroberfläche bereitstellen können):
@Override
public void onVideoDisableWarning(SubscriberKit subscriber) {
// Custom action — for example, add custom UI notification
}
@Override
public void onVideoDisableWarningLifted(SubscriberKit subscriber) {
// Custom action — for example, remove custom UI notification
}
@Override
public void onVideoDisabled(SubscriberKit subscriber, String reason) {
// Custom action — for example, add custom UI notification
}
@Override
public void onVideoEnabled(SubscriberKit subscriber, String reason) {
// Custom action — for example, remove custom UI notification
}