| 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