Audio-Fallback – iOS
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.
Anmerkungen:
- Die
OTPublisherKit.audioFallbackEnabledEigenschaft wird veraltet sein. Bitte verwenden Sie dieOTPublisherKit.subscriberAudioFallbackEnabledEigenschaft.
Dieses Thema umfasst die folgenden Abschnitte:
Aktivieren und Deaktivieren des Fallbacks für reine Audioübertragung
Um Publisher Audio Fallback zu aktivieren, setzen Sie die OTPublisherKitSettings.publisherAudioFallbackEnabled Eigenschaft bei der Erstellung des Herausgebers.
// Enable publisher audio fallback
OTPublisherKitSettings *settings = [[OTPublisherKitSettings alloc] init];
settings.publisherAudioFallbackEnabled = YES;
// Enable publisher audio fallback and disable subscriber audio fallback
OTPublisherKitSettings *settings = [[OTPublisherKitSettings alloc] init];
settings.publisherAudioFallbackEnabled = YES;
settings.subscriberAudioFallbackEnabled = NO;
// Enable subscriber audio fallback and disable publisher audio fallback
OTPublisherKitSettings *settings = [[OTPublisherKitSettings alloc] init];
settings.publisherAudioFallbackEnabled = NO;
settings.subscriberAudioFallbackEnabled = YES;
Zum Aktivieren und Deaktivieren des Teilnehmer-Audio-Fallbacks (für alle Teilnehmer des Streams), setzen Sie die OTPublisherKitSettings.subscriberAudioFallbackEnabled Eigenschaft 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-Ereignisse
Wenn das Publisher Audio Fallback aktiviert ist, wird die PublisherKitDelegate Objekt sendet die folgenden Nachrichten zu Ereignissen, die sich auf den Audio-Fallback des Herausgebers beziehen:
[OTPublisherKitDelegate publisherVideoDisableWarning:]- 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.[OTPublisherKitDelegate publisherVideoDisableWarningLifted:]- 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.[OTPublisherKitDelegate publisherVideoDisabled:reason:]- 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.[OTPublisherKitDelegate publisherVideoEnabled:reason:]— Wird zu Recht als „Qualität“ bezeichnet, wenn der Publisher feststellt, dass sich die Stream-Qualität verbessert hat und die ausgehende Videoübertragung 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):
-(void) publisherVideoDisableWarning:(OTPublisherKit *)publisher videoDisableWarning {
// Custom action — for example, add custom UI notification
}
-(void) publisherVideoDisableWarningLifted:(OTPublisherKit *)publisher videoDisableWarningLifted {
// Custom action — for example, remove custom UI notification
}
-(void) publisherVideoDisabled:(OTPublisherKit *)publisher reason:(OTPublisherVideoEventReason)reason {
// Custom action — for example, add custom UI notification
}
-(void) publisherVideoEnabled:(OTPublisherKit *)publisher reason:(OTPublisherVideoEventReason)reason {
// Custom action — for example, remove custom UI notification
}
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.
Wenn Audio-Fallback auftritt, wird dieSubscriberKitDelegate Das Objekt sendet die folgenden Nachrichten zu Ereignissen im Zusammenhang mit dem Audio-Fallback:
[OTSubscriberKitDelegate subscriberVideoDisableWarning:]- 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.[OTSubscriberKitDelegate subscriberVideoDisableWarningLifted:]- Wird aufgerufen, wenn festgestellt wird, dass sich die Qualität des Streams soweit verbessert hat, dass das deaktivierte Video kein unmittelbares Risiko mehr darstellt.[OTSubscriberKitDelegate subscriberVideoDisabled:reason:]- 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.[OTSubscriberKitDelegate subscriberVideoEnabled:reason:]- 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):
-(void) subscriberVideoDisableWarning:(OTSubscriberKit *)subscriber videoDisableWarning {
// Custom action — for example, add custom UI notification
}
-(void) subscriberVideoDisableWarningLifted:(OTSubscriberKit *)subscriber videoDisableWarningLifted {
// Custom action — for example, remove custom UI notification
}
-(void) subscriberVideoDisabled:(OTSubscriberKit *)subscriber reason:(OTSubscriberVideoEventReason)reason {
// Custom action — for example, add custom UI notification
}
-(void) subscriberVideoEnabled:(OTSubscriberKit *)subscriber reason:(OTSubscriberVideoEventReason)reason {
// Custom action — for example, remove custom UI notification
}