Audio und Video anpassen — macOS

Sie können Audio- und Videoeinstellungen für veröffentlicht und abonniert Streams:

Nur Audio oder Video veröffentlichen

Sie können Audio und Video ein- oder ausschalten, indem Sie die otc_publisher_set_publish_audio() und otc_publisher_set_publish_video() Funktionen, wobei OTC_FALSE oder OTC_FALSE als die publish_audio und publish_audio Parameter. Der folgende Code schaltet beispielsweise den Ton aus:

otc_publisher_set_publish_audio(publisher, OTC_FALSE);

Veröffentlichung in einer reinen Sprachsitzung

Zum Einrichten einer Reine Sprachausgabe Sitzung, instanziieren Sie eine otc_publisher_settings Struktur, rufe die otc_publisher_settings_set_video_track() Funktion, wobei OTC_FALSE als die enabled Parameter. Verwenden Sie anschließend den otc_publisher_new_with_settings() Funktion zum Erstellen. Der folgende Code erstellt beispielsweise einen Publisher für eine reine Sprachsitzung:


otc_publisher_settings publisher_settings = otc_publisher_settings_new();
otc_publisher_settings_set_video_track(publisher_settings, OTC_FALSE);
otc_publisher_callbacks publisher_callbacks = {0};
// Set callbacks for the publisher. Then:
otc_publisher publisher = otc_publisher_new_with_settings(publisher_callbacks, publisher_settings);

Verwendung eines benutzerdefinierten Video-Capturers

Die otc_publisher_new() Die Funktion enthält eine capturer Parameter. Wenn Sie diesen auf NULL, verwendet das SDK die Standardkamera des Systems als Quelle für den veröffentlichten Videostream. Sie können jedoch einen benutzerdefinierten Video-Capturer für den Publisher verwenden, indem Sie einen otc_video_capturer_callbacks struct und diese als capturer Parameter des otc_publisher_new() Funktion. Die Website otc_video_capturer_callbacks Die Struktur enthält Funktionszeiger auf Callback-Funktionen, die bei Ereignissen im Zusammenhang mit dem Publisher-Video aufgerufen werden, beispielsweise wenn der Video-Capturer ein neues Videobild benötigt.

Ein Beispiel finden Sie im Beispiel „Custom Video Capturer“ der opentok-macos-sdk-Beispiele Repo.

Spiegelung der lokalen Wiedergabe eines Videos eines Anbieters

Standardmäßig spiegelt der lokale Renderer für veröffentlichte Videos das Video. Sie können den mirror_on_local_render Eigenschaft der otc_video_capturer_settings Instanz, die durch den Aufruf der get_capture_settings(capturer, settings) Funktion. Setzen Sie sie auf true um das Video im lokalen Renderer des Herausgebers zu spiegeln. Setzen Sie ihn auf false dass sie nicht gespiegelt wird.

Diese Einstellung wirkt sich nur auf das gerenderte Video in der Client-Anwendung des Herausgebers aus. Sie hat keine Auswirkungen auf das Video in abonnierten Clients.

Verwendung eines benutzerdefinierten Audiotreibers

Sie können ein benutzerdefiniertes Audiogerät festlegen, um alle Publisher im Client mit Audio zu versorgen und den gemischten Audiostream aus allen Streams zu verarbeiten, die der Client abonniert hat.

Ein benutzerdefiniertes Audiogerät wird durch ein otc_audio_device Struktur. Und ein otc_audio_device_callbacks Die Struktur enthält Funktionszeiger auf Funktionen, die als audiobezogene Callbacks dienen, die vom OpenTok Linux SDK aufgerufen werden.

Ein Beispiel finden Sie im Beispiel „Custom Audio Device“ in der opentok-macos-sdk-Beispiele Repo.

Einstellen der Lautstärke für einen Teilnehmer

Sie können die Lautstärke für jeden Teilnehmer individuell einstellen, indem Sie die Funktion otc_subscriber_set_audio_volume() Funktion.

Nur Audio- oder Videoabonnements

Standardmäßig wird ein Abonnent so initialisiert, dass er Audio- und Videodaten abonniert, sofern diese verfügbar sind. Sie können Audio ein- oder ausschalten, indem Sie die Funktion otc_subscriber_set_subscribe_to_audio(otc_subscriber *subscriber, otc_bool subscribe_to_audio) :

// audio off:
otc_subscriber_set_subscribe_to_video(subscriber, OTC_FALSE);
// audio on:
otc_subscriber_set_subscribe_to_video(subscriber, OTC_TRUE);

Sie können das Video ein- oder ausschalten, indem Sie die otc_subscriber_set_subscribe_to_video(otc_subscriber *subscriber, otc_bool subscribe_to_video) :

// video off:
otc_subscriber_set_subscribe_to_video(subscriber, OTC_FALSE);
// video on:
otc_subscriber_set_subscribe_to_video(subscriber, OTC_TRUE);

Erkennen, ob ein Stream Audio oder Video enthält

Sie können die otc_stream_has_audio() und otc_stream_has_audio() Mitgliedsfunktionen einer otc_stream Instanz, um zu sehen, ob es Audio oder Video hat.

Optimierung der Audioqualität

Zur Feinabstimmung der Audioqualität für einen Publisher-Stream können die folgenden Methoden verwendet werden:

Audio-Bitrate

otc_publisher_set_max_audio_bitrate(otc_publisher* publisher, uint32_t bitrate);

Die gewünschte Bitrate für das veröffentlichte Audio in Bits pro Sekunde. Der unterstützte Wertebereich liegt zwischen 6.000 und 510.000. (Ungültige Werte werden ignoriert.) Legen Sie diesen Wert fest, um Audio in hoher Qualität zu ermöglichen (oder um die Bandbreitennutzung mit Audio geringerer Qualität zu reduzieren). Wenn Sie diese Option nicht festlegen, weist OpenTok automatisch eine Audio-Bitrate für den Stream zu.

Die folgenden Einstellungen sind empfehlenswert:

  • 8.000 - 12.000 für Schmalbandsprache (NB)
  • 16.000 - 20.000 für Breitbandsprache (WB)
  • 28.000 - 40.000 für Full-Band (FB) Sprache
  • 48.000 - 64.000 für Vollbandmusik (FB)

Audioverarbeitung deaktivieren

otc_publisher_settings_set_disable_audio_processing (otc_publisher_settings* settings, otc_bool disabled);

Legt fest, ob die Echounterdrückung, die automatische Verstärkungsregelung und die Rauschunterdrückung für die veröffentlichten Audiodaten deaktiviert werden sollen. Sie können diese Option auf true bei der Veröffentlichung von hochwertigem Audio. Der Standardwert ist false.

Automatische Verstärkungsregelung

otc_publisher_settings_set_auto_gain_control(otc_publisher_settings* settings, otc_bool enabled);

Legt fest, ob die automatische Verstärkungsregelung für die veröffentlichten Audiodaten aktiviert werden soll. Sie können diese Option auf false bei der Veröffentlichung von hochwertigem Audio. Der Standardwert ist true. Diese Einstellung wird ignoriert, wenn Sie die Audioverarbeitung deaktivieren.

Echounterdrückung

otc_publisher_settings_set_echo_cancellation(otc_publisher_settings* settings, otc_bool enabled);

Ob die Echounterdrückung für den veröffentlichten Ton aktiviert werden soll. Sie können diese Option auf false bei der Veröffentlichung von hochwertigem Audio. Der Standardwert ist true. Diese Einstellung wird ignoriert, wenn Sie die Audioverarbeitung deaktivieren.

Rauschunterdrückung

otc_publisher_settings_set_noise_suppression(otc_publisher_settings* settings, otc_bool enabled);

Gibt an, ob die Rauschunterdrückung für das veröffentlichte Audio aktiviert werden soll. Sie können diese Option auf false bei der Veröffentlichung von hochwertigem Audio. Der Standardwert ist true. Diese Einstellung wird ignoriert, wenn Sie die Audioverarbeitung deaktivieren.

Stereo

otc_publisher_settings_set_stereo(otc_publisher_settings* settings, otc_bool enabled);

Ob Stereo-Audio veröffentlicht werden soll. Der Standardwert ist false. Ein praktisches Beispiel finden Sie hier Beispielimplementierung