| 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