Erbt von NSObject
Deklariert in OTSubscriberKit.h

Übersicht

Ein OTSubscriberKit-Objekt (Subscriber) stellt Mediendaten dar, die an ein OTStream. Mit der Klasse „OTSubscriberKit“ können Sie einen benutzerdefinierten Video-Renderer für den Videostream festlegen. Verwenden Sie diese Klasse, wenn Sie eine eigene Implementierung für die Videoverarbeitung und -wiedergabe bereitstellen möchten. Andernfalls verwenden Sie die OTS-Abonnent Klasse, die einen vorgefertigten Videoprozessor und einen Renderer enthält.

Die Eigenschaft „stream“ verweist auf den Stream, den Sie abonniert haben. Die Klasse „OTSubscriberKit“ enthält Methoden, mit denen Sie die lokale Audio- und Videowiedergabe für den abonnierten Stream deaktivieren und aktivieren können.

Grundlegende Informationen zu einem Abonnenten abrufen

session

Die OTSession Objekt, dem dieser Abonnent gehört. Eine Instanz verfügt über genau einen OTSession die damit verbunden ist, und diese Eigenschaft ist unveränderlich.

@property (readonly) OTSession *session

Angemeldet in

OTSubscriberKit.h

stream

Der Stream, an den dieser Abonnent gebunden ist. Alle Medienkanäle in diesem Stream sollten für die Anzeige bzw. Wiedergabe mit dieser Instanz verfügbar sein.

@property (readonly) OTStream *stream

Angemeldet in

OTSubscriberKit.h

delegate

Die OTSubscriberKitDelegate Objekt, das als Delegat fungiert und grundlegende Ereignisse für dieses OTSubscriber-Objekt verarbeitet.

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

Diskussion

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

Angemeldet in

OTSubscriberKit.h

Arbeiten mit Audio und Video

audioLevelDelegate

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

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

Diskussion

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

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

Angemeldet in

OTSubscriberKit.h

captionsDelegate

Der Delegierte für den Empfang von Untertiteln für den Stream dieses Abonnenten.

@property (nonatomic, weak) id<OTSubscriberKitCaptionsDelegate> _Nullable captionsDelegate

Angemeldet in

OTSubscriberKit.h

subscribeToAudio

Ob der Audio-Stream abonniert werden soll.

@property (nonatomic) BOOL subscribeToAudio

Diskussion

Der Standardwert ist „JA“.

Das Festlegen dieser Eigenschaft hat keine Auswirkung, wenn die [OTStream hat Audio] Die Eigenschaft ist auf „NEIN“ gesetzt.

Angemeldet in

OTSubscriberKit.h

subscribeToVideo

Ob man den Kanal abonnieren möchte.

@property (nonatomic) BOOL subscribeToVideo

Diskussion

Der Standardwert ist „JA“.

Das Festlegen dieser Eigenschaft hat keine Auswirkung, wenn die [OTStream hat ein Video] Die Eigenschaft ist auf „NEIN“ gesetzt.

Angemeldet in

OTSubscriberKit.h

subscribeToCaptions

Ob Untertitel angezeigt werden sollen.

@property (nonatomic) BOOL subscribeToCaptions

Diskussion

Der Standardwert entspricht dem Wert „captions“ des Publishers des Streams. [OTStream hat Untertitel]

Angemeldet in

OTSubscriberKit.h

captionsTranslationLanguage

Die bevorzugte Sprache für die Übersetzung der Untertitel dieses Abonnenten.

@property (nonatomic, copy, nullable) NSString *captionsTranslationLanguage

Diskussion

Diese Einstellung wird nur wirksam, wenn Untertitel aktiviert sind. Wählen Sie hier einen unterstützten BCP-47-Sprachcode aus, um übersetzte Untertitel zu erhalten, oder wählen Sie nil um die Übersetzung zu deaktivieren. Der Standardwert lautet nil (Es wurde keine Übersetzung konfiguriert).

Die unterstützten Sprachcodes sind in der Server-API-Spezifikation definiert.

Wenn der Sprachcode nicht unterstützt wird, wird der Wert nicht übernommen. Lesen Sie diese Eigenschaft nach dem Setzen erneut aus, um zu Verify, ob die Sprache korrekt akzeptiert wurde.

Dies ist eine Funktion der privaten Beta-Version.

Angemeldet in

OTSubscriberKit.h

videoRender

Der Videorenderer für diese Instanz.

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

Angemeldet in

OTSubscriberKit.h

preferredResolution

Die bevorzugte Auflösung für den Stream des Abonnenten.

@property (nonatomic) CGSize preferredResolution

Diskussion

Begrenzung der Videoauflösung und Bildfrequenz (siehe [OTSubscriberKit preferredFrameRate]) reduziert die Netzwerk- und CPU-Auslastung auf dem abonnierenden Client. Je nach den Abmessungen des Videos des Abonnenten in der App empfiehlt es sich möglicherweise, eine niedrigere Auflösung zu verwenden. Für Abonnenten eines Streams, der weniger wichtig (und kleiner) ist als andere Streams, empfiehlt es sich möglicherweise, eine niedrigere Bildrate oder Auflösung zu verwenden.

Diese Methode gilt nur beim Abonnieren eines Streams, der die Skalierbare Videofunktion. Skalierbare Videos sind verfügbar:

  • Nur in Sitzungen, die den OpenTok Media Router verwenden (Sitzungen mit dem Medienbetrieb (auf „geroutet“ gesetzt)
  • Gilt nur für Streams, die von Clients veröffentlicht werden, die skalierbares Video unterstützen (siehe die Dokumentation zu Skalierbare Videofunktion).

Bei Streams, die kein skalierbares Video verwenden, hat der Aufruf dieser Methode keine Auswirkung.

Anmerkung: Die Auflösung skalierbarer Videostreams wird automatisch für jeden Teilnehmer entsprechend den Netzwerkbedingungen und der CPU-Auslastung angepasst, auch wenn Sie diese Methode nicht aufrufen. Rufen Sie diese Methode auf, wenn Sie die Auflösung für diesen Teilnehmer begrenzen möchten.

Nicht jede Auflösung steht einem Abonnenten zur Verfügung. Wenn Sie die bevorzugte Auflösung festlegen, wählt das OpenTok iOS SDK die beste verfügbare Auflösung aus, die Ihren Vorgaben entspricht. Die verfügbaren Auflösungen hängen von der maximalen Auflösung ab, die der Publisher für den Stream festlegt; diese ist eingestellt als [OTStream videoDimensions] Eigenschaft für den Stream. Jede der für einen Stream verfügbaren Auflösungen verwendet dasselbe Seitenverhältnis.

Angemeldet in

OTSubscriberKit.h

preferredFrameRate

Die bevorzugte Bildrate für den Stream des Teilnehmers.

@property (nonatomic) float preferredFrameRate

Diskussion

Begrenzung der Bildrate und der Videoauflösung (siehe [OTSubscriberKit preferredResolution]) reduziert die Netzwerk- und CPU-Auslastung auf dem abonnierenden Client. Je nach den Abmessungen des Videos des Abonnenten in der App empfiehlt es sich möglicherweise, eine niedrigere Auflösung zu verwenden. Für Abonnenten eines Streams, der weniger wichtig (und kleiner) ist als andere Streams, empfiehlt es sich möglicherweise, eine niedrigere Bildrate oder Auflösung zu verwenden.

Diese Methode gilt nur beim Abonnieren eines Streams, der die Skalierbare Videofunktion. Skalierbare Videos sind verfügbar:

  • Nur in Sitzungen, die den OpenTok Media Router verwenden (Sitzungen mit dem Medienbetrieb (auf „geroutet“ gesetzt)
  • Gilt nur für Streams, die von Clients veröffentlicht werden, die skalierbares Video unterstützen (siehe die Dokumentation zu Skalierbare Videofunktion).

Bei Streams, die kein skalierbares Video verwenden, hat der Aufruf dieser Methode keine Auswirkung.

Anmerkung: Die Bildrate für skalierbare Videostreams wird für jeden Teilnehmer automatisch an die Netzwerkbedingungen und die CPU-Auslastung angepasst, auch wenn Sie diese Methode nicht aufrufen. Rufen Sie diese Methode auf, wenn Sie die Bildrate für diesen Teilnehmer begrenzen möchten.

Die verfügbaren Bildraten richten sich nach dem Wert der maximalen Bildrate, die für den Stream zur Verfügung steht. Wenn Sie die bevorzugte Bildrate für den Abonnenten festlegen, wählt das OpenTok iOS SDK die beste verfügbare Bildrate aus, die der preferredFrameRate Einstellung, basierend auf der Bandbreite und den CPU-Einschränkungen des Kunden.

Die tatsächlich verfügbaren Bildraten hängen dynamisch von den Netzwerk- und CPU-Ressourcen ab, die dem Publisher zur Verfügung stehen.

Angemeldet in

OTSubscriberKit.h

audioVolume

Die Lautstärke des Teilnehmers im Bereich von 0 bis 100. Wenn der Wert bei der Einstellung außerhalb dieses Bereichs liegt, wird er auf diesen Bereich begrenzt.

@property (nonatomic) double audioVolume

Diskussion

Der Standardwert beträgt 100.

Angemeldet in

OTSubscriberKit.h

Audio- und Videostatistiken abrufen

networkStatsDelegate

Die OTSubscriberKitNetworkStatsDelegate Objekt, das in regelmäßigen Abständen Statistiken zur Teilnehmerqualität empfängt.

@property (nonatomic, weak) id<OTSubscriberKitNetworkStatsDelegate> _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 [OTSubscriberKit-Delegat] Eigenschaft (das OTSubscriberKitDelegate-Objekt).

Siehe auch [OTSubscriberKit rtcStatsReportDelegate].

Angemeldet in

OTSubscriberKit.h

rtcStatsReportDelegate

Die OTSubscriberKitRtcStatsReportDelegate das die RTC-Statistiken für den Teilnehmer auswertet. Das [OTSubscriberKitRtcStatsReportDelegate subscriber:rtcStatsReport:] Die Nachricht wird als Antwort auf den Aufruf der [OTSubscriberKit getRtcStatsReport] Methode.

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

Angemeldet in

OTSubscriberKit.h

Initialisierung eines Abonnenten

– initWithStream:delegate:

Initialisiert einen Abonnenten und bindet ihn an einen OTStream Instanz. Nach der Initialisierung ist die Instanz dauerhaft an den Stream gebunden.

- (_Nullable id)initWithStream:(nonnull OTStream *)stream delegate:(nullable id<OTSubscriberKitDelegate>)delegate

Parameter

stream Die OTStream Objekt, an das diese Instanz gebunden werden soll.
delegate Der Delegierte (OTSubscriberKitDelegate), der die von dieser Instanz generierten Ereignisse verarbeitet.

Diskussion

Das OpenTok iOS SDK unterstützt eine begrenzte Anzahl gleichzeitiger Audio- und Video- Streams in einer App:

  • Bei einer weitergeleiteten Sitzung sind maximal zwei Streams zulässig. Eine App kann bis zu zwei Abonnenten haben oder einen Publisher und einen Abonnenten.
  • In einer gerouteten Sitzung kann eine App einen Audio-Video-Publisher, einen Audio-Video-Subscriber und bis zu drei weitere abonnierte reine Audio-Streams gleichzeitig unterstützen.

(Informationen zu weitergeleiteten und gerouteten Sitzungen finden Sie in der Dokumentation zu den Medienbetrieb einer Sitzung.)

Durch die Initialisierung eines Abonnenten wird dieser dazu veranlasst, Daten vom OpenTok-Server zu streamen, unabhängig davon, ob die Ansicht des Abonnentenobjekts zu einer Superansicht hinzugefügt wird.

Sie können nur Audio streamen (ohne den Videostream zu abonnieren), indem Sie die [OTSubscriberKit subscribeToVideo] Eigenschaft sofort auf „NO“ setzen, nachdem das OTSubscriber-Objekt initialisiert wurde. Sie können nur Video streamen (ohne den Audiostream zu abonnieren), indem Sie die [OTSubscriberKit subscribeToAudio] Eigenschaft sofort nach der Initialisierung des OTSubscriber-Objekts auf „NO“ setzen.

Wenn der Abonnent eine Verbindung zum Stream herstellt, wird die [OTSubscriberKitDelegate subscriberDidConnectToStream:] Nachricht gesendet wird.

Bei einem OTSubscriber-Objekt wird, sobald der erste Video-Frame dekodiert wurde, das [OTSubscriberDelegate subscriberVideoDataReceived:] Nachricht gesendet wird.

Wenn der Abonnent keine Verbindung zum Stream herstellen kann, wird die [OTSubscriberKitDelegate subscriber:didFailWithError:] Nachricht gesendet wird.

Angemeldet in

OTSubscriberKit.h

– getRtcStatsReport:

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

- (void)getRtcStatsReport:(OTError *_Nullable *_Nullable)error

Parameter

error Wird gesetzt, wenn bei der Bearbeitung der Anfrage synchron ein Fehler auftritt. Die OTSubscriberErrorCode Die Enumeration (definiert in der Datei „OTError.h“) definiert Werte für die code Eigenschaft dieses Objekts. Dieses Objekt ist NULL, wenn kein Fehler auftritt. Siehe auch [OTSubscriberKit networkStatsDelegate] und [OTPublisherKit getRtcStatsReport].

Angemeldet in

OTSubscriberKit.h