Erbt von NSObject
Deklariert in OTPublisherKit.h

Übersicht

Ein Publisher erfasst einen Audio-Video-Stream aus den von Ihnen angegebenen Quellen. Sie können den Audio-Video-Stream anschließend in einer OpenTok-Sitzung veröffentlichen, indem Sie den [OTSession publish:error:] Nachricht.

Das OpenTok iOS SDK unterstützt die Veröffentlichung auf allen iOS-Geräten mit mehreren Kernen. Weitere Informationen finden Sie unter „Anforderungen an Entwickler und Clients“ in der README-Datei für das OpenTok iOS-SDK.

Initialisierung eines Publishers

– initWithDelegate:

Initialisieren Sie ein Publisher-Objekt und geben Sie das Delegate-Objekt an.

- (nullable instancetype)initWithDelegate:(nullable id<OTPublisherKitDelegate>)delegate

Parameter

delegate Der Delegierte (OTPublisherKitDelegate) Objekt für den Herausgeber.

Rückgabewert

Der Zeiger auf die Instanz oder nil falls die Initialisierung fehlgeschlagen ist.

Diskussion

Bei Ausführung im Xcode-iOS-Simulator gibt diese Methode Folgendes zurück: nil.

Angemeldet in

OTPublisherKit.h

– initWithDelegate:settings:

Initialisieren Sie den Publisher mit den Einstellungen, die durch eine OTPublisherKitEinstellungen Objekt.

- (nullable instancetype)initWithDelegate:(nullable id<OTPublisherKitDelegate>)delegate settings:(nonnull OTPublisherKitSettings *)settings

Parameter

delegate Der Delegierte (OTPublisherKitDelegate) Objekt für den Herausgeber.
settings Die (OTPublisherKitEinstellungen) Objekt, das die Einstellungen für den Herausgeber definiert.

Angemeldet in

OTPublisherKit.h

– initWithDelegate:name:

Initialisieren Sie ein Publisher-Objekt und geben Sie das Delegate-Objekt sowie den Namen des Streams an.

- (nullable instancetype)initWithDelegate:(nullable id<OTPublisherKitDelegate>)delegate name:(nullable NSString *)name

Parameter

delegate Der Delegierte (OTPublisherKitDelegate) Objekt für den Herausgeber.
name Der Name des Herausgebers des Videos. Der [OTStream-Name] Eigenschaft für einen von diesem Verlag veröffentlichten Stream auf diesen Wert gesetzt (auf allen Clients).

Rückgabewert

Der Zeiger auf die Instanz oder nil falls die Initialisierung fehlgeschlagen ist.

Diskussion

Diese Methode ist veraltet. Verwenden Sie stattdessen [OTPublisherKit initWithDelegate:settings:] stattdessen.

Bei Ausführung im Xcode-iOS-Simulator gibt diese Methode Folgendes zurück: nil.

Angemeldet in

OTPublisherKit.h

– initWithDelegate:name:audioTrack:videoTrack:

Initialisieren Sie den Publisher und legen Sie fest, ob Audio und Video für diese Instanz aktiviert werden sollen.

- (nullable instancetype)initWithDelegate:(nullable id<OTPublisherKitDelegate>)delegate name:(nullable NSString *)name audioTrack:(BOOL)audioTrack videoTrack:(BOOL)videoTrack

Parameter

delegate Der Delegierte (OTPublisherKitDelegate) Objekt für den Herausgeber.
name Der Name des Herausgebers des Videos. Der [OTStream-Name] Eigenschaft für einen von diesem Verlag veröffentlichten Stream auf diesen Wert gesetzt (auf allen Clients).
audioTrack Ob Audio veröffentlicht werden soll (JA) oder nicht (NEIN).
videoTrack Ob das Video veröffentlicht werden soll (JA) oder nicht (NEIN).

Diskussion

Diese Methode ist veraltet. Verwenden Sie stattdessen [OTPublisherKit initWithDelegate:settings:] stattdessen.

Wenn entweder „audioTrack“ oder „videoTrack“ auf „NO“ gesetzt ist, wird das jeweilige Subsystem nicht initialisiert, und das Setzen des entsprechenden [OTPublisherKit publishAudio] und [OTPublisherKit publishVideo] Eigenschaften haben keine Auswirkung.

Wenn Ihre Anwendung keine Audio- oder Videofunktionen benötigt, wird empfohlen, diese Werte festzulegen, anstatt die [OTPublisherKit publishAudio] und [OTPublisherKit publishVideo] Eigenschaften, die die Spuren nur vorübergehend deaktivieren.

Angemeldet in

OTPublisherKit.h

Informationen zum Verlag einholen

delegate

Die OTPublisherDelegate Objekt, das als Delegat für das OTPublisher- Objekt dient.

@property (nonatomic, weak) id<OTPublisherKitDelegate> _Nullable delegate

Diskussion

Siehe auch [OTPublisherKit audioLevelDelegate], [OTPublisherKit networkStatsDelegate]und [OTPublisherKit rtcStatsReportDelegate].

Angemeldet in

OTPublisherKit.h

audioLevelDelegate

Erhält in regelmäßigen Abständen Berichte über die Audiopegel dieses Anbieters.

@property (nonatomic, weak) id<OTPublisherKitAudioLevelDelegate> _Nullable audioLevelDelegate

Diskussion

Dies ist ein anderes Delegate-Objekt als das, das als „delegate“-Eigenschaft festgelegt wurde (das OTPublisherKitDelegate-Objekt).

Wenn Sie diese Eigenschaft nicht festlegen, ist das Audio-Abtast-Subsystem deaktiviert.

Angemeldet in

OTPublisherKit.h

networkStatsDelegate

Die OTPublisherKitNetworkStatsDelegate Objekt, das in regelmäßigen Abständen Qualitätsstatistiken vom Herausgeber erhält.

@property (nonatomic, weak) id<OTPublisherKitNetworkStatsDelegate> _Nullable networkStatsDelegate

Diskussion

An dieses Delegat-Objekt werden Nachrichten gesendet, die Folgendes melden:

  • Gesamtzahl der verlorenen Audio- und Videopakete
  • Gesamtzahl der empfangenen Audio- und Videopakete
  • Gesamtzahl der empfangenen Audio- und Video-Bytes

Dies ist ein anderes Delegate-Objekt als das, das als [OTPublisherKit-Delegat] Eigenschaft (das OTPublisherKitDelegate-Objekt).

Siehe auch [OTPublisherKit rtcStatsReportDelegate].

Angemeldet in

OTPublisherKit.h

rtcStatsReportDelegate

Die OTPublisherKitRtcStatsReportDelegate das die RTC-Statistiken für den Herausgeber auswertet. Das [OTPublisherKitRtcStatsReportDelegate publisher:rtcStatsReport:] Die Nachricht wird als Antwort auf den Aufruf der [OTPublisherKit getRtcStatsReport] Methode.

@property (nonatomic, weak) id<OTPublisherKitRtcStatsReportDelegate> _Nullable rtcStatsReportDelegate

Angemeldet in

OTPublisherKit.h

session

Die Sitzung, zu der dieser Herausgeber gehört.

@property (readonly) OTSession *session

Angemeldet in

OTPublisherKit.h

stream

Die OTStream dem Herausgeber zugeordnetes Objekt.

@property (readonly) OTStream *stream

Angemeldet in

OTPublisherKit.h

name

Eine Zeichenfolge, die dem Stream dieses Publishers zugeordnet wird. Diese Zeichenfolge wird am unteren Rand der Abonnentenvideos angezeigt, die mit dem veröffentlichten Stream verknüpft sind, sofern ein Overlay zur Anzeige des Namens vorhanden ist.

@property (readonly) NSString *name

Diskussion

Der Name muss bei der Initialisierung festgelegt werden, wenn Sie die [OTPublisherKit initWithDelegate:settings:] Nachricht.

Dieser Wert ist standardmäßig eine leere Zeichenkette.

Angemeldet in

OTPublisherKit.h

– getRtcStatsReport

Ruft den RTC-Statistikbericht für den Publisher ab. Dies ist ein asynchroner Vorgang. Legen Sie die [OTPublisherKit rtcStatsReportDelegate] Eigenschaft und implementieren die [OTPublisherKitRtcStatsReportDelegate publisher:rtcStatsReport:] Methode vor dem Aufruf dieser Methode. Sobald die Statistiken verfügbar sind, erfolgt die Implementierung der [OTPublisherKitRtcStatsReportDelegate publisher:rtcStatsReport:] Die Nachricht wird gesendet.

- (void)getRtcStatsReport

Diskussion

Siehe auch [OTPublisherKit networkStatsDelegate] und [OTSubscriberKit getRtcStatsReport].

Angemeldet in

OTPublisherKit.h

Steuerung der Audio- und Videoausgabe für einen Herausgeber

publishAudio

Ob Audio veröffentlicht werden soll.

@property (nonatomic) BOOL publishAudio

Diskussion

Der Standardwert ist TRUE.

Angemeldet in

OTPublisherKit.h

publishVideo

Ob ein Video veröffentlicht werden soll.

@property (nonatomic) BOOL publishVideo

Diskussion

Der Standardwert ist TRUE.

Angemeldet in

OTPublisherKit.h

publishCaptions

Ob Untertitel aktiviert werden sollen.

@property (nonatomic) BOOL publishCaptions

Diskussion

Der Standardwert ist FALSE.

Angemeldet in

OTPublisherKit.h

Konfiguration des Publisher-Geräts festlegen

videoCapture

Die OTVideoCapture Instanz, die zum Aufzeichnen von Videos für den Stream in die OpenTok- Sitzung verwendet wird.

@property (nonatomic, strong) id<OTVideoCapture> _Nullable videoCapture

Angemeldet in

OTPublisherKit.h

videoType

Legt den Videotyp für den veröffentlichten Stream fest.

@property (nonatomic, assign) OTPublisherKitVideoType videoType

Diskussion

Stellen Sie diesen Wert auf einen der folgenden Werte ein:

  • OTPublisherKitVideoTypeScreen — Optimiert die Videokodierung für die Bildschirmfreigabe. Um einen Bildschirmfreigabe-Stream zu veröffentlichen, müssen Sie einen benutzerdefinierten Video-Capturer für das OTPublisherKit-Objekt implementieren. Siehe [OTPublisherKit videoCapture]. Es wird empfohlen, bei diesem Videotyp eine niedrige Bildrate (5 Bilder pro Sekunde oder weniger) zu verwenden. Bei Verwendung des Bildschirm-Videotyps in einer Sitzung, die den OpenTok Media Server nutzt, wird die OTPublisherKitEinstellungen Die Eigenschaften für den Audio-Fallback sind standardmäßig auf „NO“ gesetzt; dadurch wird die reine Audio-Fallback-Funktion deaktiviert, sodass das Video bei den Abonnenten nicht ausfällt. Siehe der OpenTok Media Router.
  • OTPublisherKitVideoTypeCamera — Dies ist die Standardeinstellung, die Sie verwenden sollten, wenn Sie eine Kamera als Videoquelle nutzen.

Angemeldet in

OTPublisherKit.h

videoRender

Die OTVideoRender Instanz, die zum Rendern von Videos für den Stream in die OpenTok- Sitzung verwendet wird.

@property (nonatomic, strong) id<OTVideoRender> _Nullable videoRender

Angemeldet in

OTPublisherKit.h

Steuerung der voreingestellten Videobitrate des Publishers

maxVideoBitrate

Die maximale Videobitrate für den Videostream des Herausgebers in Bit pro Sekunde (bps).

@property (nonatomic) int maxVideoBitrate

Diskussion

Diese Eigenschaft legt eine explizite Obergrenze für die Videobitrate des Publishers fest, und zwar zwischen 5.000 und 10.000.000. Wenn Sie diese Eigenschaft auf 0 Löscht alle manuell festgelegten Obergrenzen und kehrt zum standardmäßigen, auf Voreinstellungen basierenden Verhalten der adaptiven Bitrate ohne explizite Begrenzung zurück.

Beim Auslesen dieser Eigenschaft wird die aktuell konfigurierte maximale Bitrate in bps zurückgegeben. Wenn keine manuelle Bitrate festgelegt wurde oder eine voreingestellte Bitrate aktiv ist, lautet der Wert 0.

Ein Wert von 0 bedeutet, dass keine explizite Bitratenbegrenzung angewendet wird und der Stream nach adaptiven Voreinstellungen läuft, um die Qualität zu optimieren.

Siehe auch [OTPublisherKit videoBitratePreset] und Herausgeber Maximale Bitrate.

Angemeldet in

OTPublisherKit.h

videoBitratePreset

Die auf den Videostream des Herausgebers angewendete Strategie zur Voreinstellung der Videobitrate.

@property (nonatomic) OTVideoBitratePreset videoBitratePreset

Diskussion

Diese Eigenschaft konfiguriert eine vordefinierte Bitrate-Strategie, um ein Gleichgewicht zwischen Videoqualität und Bandbreitennutzung herzustellen. Zu den verfügbaren Voreinstellungen gehören das Standardverhalten, eine moderate Bandbreiteneinsparung sowie ein Modus zur aggressiven Bandbreiteneinsparung. Voreingestellte Strategien ermöglichen die Steuerung des Encoder-Verhaltens, ohne dass explizite Bitrate-Werte angegeben werden müssen.

Voreingestellte Konfigurationen und manuelle Bitrate-Einstellungen schließen sich gegenseitig aus. Einstellung maxVideoBitrate überschreibt alle Voreinstellungen und ändert den Wert dieser Eigenschaft automatisch auf OTVideoBitratePresetCustom.

Das Auslesen dieser Eigenschaft gibt die derzeit aktive Voreinstellung zurück. Wenn eine benutzerdefinierte Bitrate manuell festgelegt wurde, lautet der Wert OTVideoBitratePresetCustom.

Der Standardwert ist OTVideoBitratePresetDefault.

Siehe auch [OTPublisherKit maxVideoBitrate] und Herausgeber Maximale Bitrate.

Angemeldet in

OTPublisherKit.h

degradationPreference

Die bevorzugte Vorgehensweise, nach der die Video-Engine die Bildrate und Auflösung an begrenzte Bandbreiten- und CPU-Ressourcen anpasst. Eine Beschreibung der möglichen Werte finden Sie unter „OTDegradationPreference“.

@property (nonatomic) OTDegradationPreference degradationPreference

Angemeldet in

OTPublisherKit.h

targetScalabilityMode

Der Zielskalierbarkeitsmodus, der explizit über `setTargetScalabilityMode:error:` festgelegt wurde. Gibt den zuletzt an den Setter übergebenen Wert zurück oder `null`, falls der Setter noch nie aufgerufen wurde. Dies spiegelt die Absicht des Benutzers wider, nicht den tatsächlich angewendeten Modus (der aufgrund eines codecabhängigen Fallbacks abweichen kann).

@property (nonatomic, readonly) NSString *targetScalabilityMode

Diskussion

Dies ist eine Beta-Funktion.

Angemeldet in

OTPublisherKit.h

– setTargetScalabilityMode:error:

Der Zielskalierbarkeitsmodus (SVC – Scalable Video Coding) für diesen Publisher. Der Skalierbarkeitsmodus steuert die Anzahl der räumlichen (Auflösung) und zeitlichen (Bildrate) Ebenen, die WebRTC codiert. Der Modus wird auf den Medienpfad des Media Routers angewendet.

- (void)setTargetScalabilityMode:(NSString *_Nullable)mode error:(NSError *_Nullable *_Nullable)error

Parameter

mode Die Zeichenfolge für den gewünschten Skalierbarkeitsmodus (z. B. @„L1T3“). Muss einer der folgenden Werte sein: L1T1, L1T2, L1T3, L2T1, L2T2, L2T3, L3T1, L3T2, L3T3.
error Im Fehlerfall wird ein OTError mit der Domäne OT_PUBLISHER_ERROR_DOMAIN und dem Code OTPublisherInvalidScalabilityMode gesetzt.

Diskussion

Der Setter kann jederzeit aufgerufen werden – dafür muss die Aushandlung des Medienpfads noch nicht abgeschlossen sein. Der Modus wird angewendet, sobald der Medienpfad des Medienrouters eingerichtet ist.

Wird auf dem Medienpfad des Media Routers ein Nicht-SVC-Codec (VP8, H.264) ausgehandelt, wird der am ehesten passende Modus verwendet: Die räumlichen Ebenen werden auf 1 festgelegt, wobei die zeitliche Dimension beibehalten wird (z. B. L2T2 → L1T2, wenn VP8 ausgehandelt wird).

Angemeldet in

OTPublisherKit.h

Medientransformatoren einstellen

videoTransformers

Array von OTVideoTransformern in der Reihenfolge, in der sie auf den Stream angewendet werden sollen.

@property (nonatomic, strong) NSArray *videoTransformers

Angemeldet in

OTPublisherKit.h

audioTransformers

Array von OTAudioTransformer in der Reihenfolge, in der sie auf den Stream angewendet werden sollen.

@property (nonatomic, strong) NSArray *audioTransformers

Angemeldet in

OTPublisherKit.h