継承元 NSObject
宣言された場所 OTSubscriberKit.h

概要

OTSubscriberKit(サブスクライバー)オブジェクトは、 OTStream. OTSubscriberKit クラスを使用すると、ビデオストリームに対してカスタムビデオレンダラーを 設定できます。独自のビデオ処理およびレンダリングの実装を提供したい場合は、 このクラスを使用してください。そうでない場合は、 OTS購読者 クラス。これには、あらかじめ組み込まれたビデオプロセッサと レンダラーが含まれています。

stream プロパティは、サブスクライブしたストリームを参照します。 OTSubscriberKit クラスには、サブスクライブしたストリームの ローカルでの音声および動画の再生を無効化または有効化できるメソッドが含まれています。

加入者に関する基本情報の取得

session

について オセッション このサブスクライバーを所有するオブジェクト。インスタンスには 1つだけ オセッション これに関連付けられており、このプロパティは 不変です。

@property (readonly) OTSession *session

登録地

OTSubscriberKit.h

stream

このサブスクライバーがバインドされているストリーム。このストリーム上のメディアチャネルは、 すべてこのインスタンスで表示・再生が可能である必要があります。

@property (readonly) OTStream *stream

登録地

OTSubscriberKit.h

delegate

について OTSubscriberKitDelegate デリゲートとして機能するオブジェクトで、 この OTSubscriber オブジェクトの基本的なイベントを処理します。

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

考察

こちらも参照 [OTSubscriberKit audioLevelDelegate], [OTSubscriberKit networkStatsDelegate]そして [OTSubscriberKit rtcStatsReportDelegate].

登録地

OTSubscriberKit.h

音声と動画の取り扱い

audioLevelDelegate

この加入者の音声レベルに関するレポートを定期的に受け取ります。

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

考察

これは、 [OTSubscriberKit デリゲート] プロパティ(OTSubscriberKitDelegate オブジェクト)。

このプロパティを設定しない場合、オーディオサンプリングサブシステムは無効になります。

登録地

OTSubscriberKit.h

captionsDelegate

この加入者のストリームのキャプションを受信するためのデリゲート。

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

登録地

OTSubscriberKit.h

subscribeToAudio

そのストリームの音声を購読するかどうか。

@property (nonatomic) BOOL subscribeToAudio

考察

デフォルト値は「YES」です。

このプロパティを設定しても、 [OTStream hasAudio] プロパティは 「NO」に設定されています。

登録地

OTSubscriberKit.h

subscribeToVideo

そのストリームの動画を購読するかどうか。

@property (nonatomic) BOOL subscribeToVideo

考察

デフォルト値は「YES」です。

このプロパティを設定しても、 [OTStream hasVideo] プロパティは 「NO」に設定されています。

登録地

OTSubscriberKit.h

subscribeToCaptions

字幕を表示するかどうか。

@property (nonatomic) BOOL subscribeToCaptions

考察

デフォルト値は、ストリームのパブリッシャーの「captions」の値です。 [OTStream hasCaptions]

登録地

OTSubscriberKit.h

captionsTranslationLanguage

この購読者にとって、キャプションの翻訳に最適な言語です。

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

考察

この設定は、字幕が有効になっている場合にのみ適用されます。 翻訳された字幕を表示するには、サポートされている BCP-47 言語コードを設定するか、 または nil 翻訳を無効にするには。デフォルト値は nil (翻訳設定がありません)。

サポートされている言語コードは、サーバーAPI仕様書に定義されています。

言語コードがサポートされていない場合、その値は適用されません。 設定後にこのプロパティを読み取り、言語が 正しく受け入れられたことを確認してください。

これはプライベートベータ版の機能です。

登録地

OTSubscriberKit.h

videoRender

このインスタンスのビデオレンダラー。

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

登録地

OTSubscriberKit.h

preferredResolution

加入者のストリームに推奨される解像度。

@property (nonatomic) CGSize preferredResolution

考察

動画の解像度とフレームレートを制限する(参照: [OTSubscriberKit preferredFrameRate]) これにより、購読側のクライアントにおけるネットワークおよびCPUの使用量が削減されます。アプリ内で購読者が視聴する動画のサイズに応じて、より低い解像度を設定することを検討してください。また、他のストリームに比べて重要度が低く(かつ規模が小さい)ストリームを購読するユーザーに対しては、より低いフレームレートや解像度を設定することを検討してください。

この方法は、 スケーラブルビデオ機能. スケーラブルビデオが利用可能です:

  • OpenTok Media Router を使用するセッション( メディアモード (ルーティング設定)
  • スケーラブルビデオをサポートするクライアントによって配信されるストリームにのみ適用されます( のドキュメントを参照してください)。 スケーラブルビデオ機能).

スケーラブルビデオを使用していないストリームでは、このメソッドを呼び出しても何の効果もありません。

注: スケーラブルなビデオストリームの解像度は、 このメソッドを呼び出さなくても、ネットワーク状況やCPU使用率に基づいて 各加入者ごとに自動的に調整されます。この加入者の解像度を制限したい場合は、 このメソッドを呼び出してください。

すべての解像度が加入者に利用可能というわけではありません。希望する 解像度を設定すると、OpenTok iOS SDK は、ユーザーの制約条件に合致する 利用可能な最適な解像度を選択します。利用可能な解像度は、パブリッシャーが ストリームに対して設定した最大解像度によって決まります。この最大解像度は、 [OTStream videoDimensions] ストリームのプロパティ。ストリームで利用可能な 各解像度は、すべて同じアスペクト比を使用します。

登録地

OTSubscriberKit.h

preferredFrameRate

加入者のストリームに推奨されるフレームレート。

@property (nonatomic) float preferredFrameRate

考察

フレームレートと動画解像度の制限(参照: [OTSubscriberKit preferredResolution]) これにより、購読側のクライアントにおけるネットワークおよびCPUの使用量が削減されます。アプリ内で購読者が視聴する動画のサイズに応じて、より低い解像度を設定することを検討してください。また、他のストリームに比べて重要度が低く(かつ規模が小さい)ストリームを購読するユーザーに対しては、より低いフレームレートや解像度を設定することを検討してください。

この方法は、 スケーラブルビデオ機能. スケーラブルビデオが利用可能です:

  • OpenTok Media Router を使用するセッション( メディアモード (ルーティング設定)
  • スケーラブルビデオをサポートするクライアントによって配信されるストリームにのみ適用されます( のドキュメントを参照してください)。 スケーラブルビデオ機能).

スケーラブルビデオを使用していないストリームでは、このメソッドを呼び出しても何の効果もありません。

注: スケーラブルなビデオストリームのフレームレートは、 このメソッドを呼び出さなくても、ネットワーク状況やCPU使用率に基づいて 各加入者ごとに自動的に調整されます。この加入者のフレームレートを制限したい場合は、 このメソッドを呼び出してください。

利用可能なフレームレートは、そのストリームで利用可能な最大フレームレートの値に基づいています。 サブスクライバーの希望フレームレートを設定すると、 OpenTok iOS SDK は、その値に最も近い利用可能な最適なフレームレートを 選択します。 preferredFrameRate クライアントの帯域幅 およびCPUの制約に基づいて設定します。

実際に利用可能なフレームレートは、パブリッシャーが利用できるネットワークおよびCPU リソースに応じて動的に変化します。

登録地

OTSubscriberKit.h

audioVolume

加入者の音声音量(0~100)。この 値を設定する際、指定した値がこの範囲外の場合は、範囲内に収まるように調整されます。

@property (nonatomic) double audioVolume

考察

デフォルト値は 100 です。

登録地

OTSubscriberKit.h

音声および動画の統計情報の取得

networkStatsDelegate

について OTSubscriberKitNetworkStatsDelegate 定期的に 加入者の品質統計情報を受信するオブジェクト。

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

考察

このデリゲートオブジェクトには、以下の内容を報告するメッセージが送信されます。

  • 失われたオーディオおよびビデオパケットの合計数
  • 受信したオーディオおよびビデオパケットの合計数
  • 受信した音声および動画の合計バイト数

これは、 [OTSubscriberKit デリゲート] プロパティ(OTSubscriberKitDelegate オブジェクト)。

こちらも参照 [OTSubscriberKit rtcStatsReportDelegate].

登録地

OTSubscriberKit.h

rtcStatsReportDelegate

について OTSubscriberKitRtcStatsReportDelegate そのサブスクライバーの RTC統計情報を報告するものです。その [OTSubscriberKitRtcStatsReportDelegate subscriber:rtcStatsReport:] このメッセージは、以下の呼び出しに対する応答として送信されます。 [OTSubscriberKit getRtcStatsReport] メソッドを使用する。

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

登録地

OTSubscriberKit.h

サブスクライバーの初期化

– initWithStream:delegate:

サブスクライバーを初期化し、それを OTStream インスタンス。 初期化されると、そのインスタンスはストリームに永続的に紐付けられます。

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

パラメータ

stream について OTStream このインスタンスをバインドするオブジェクト。
delegate 代表(OTSubscriberKitDelegate) このインスタンスによって生成されるイベントを処理するものです。

考察

OpenTok iOS SDK では、アプリ内で同時に処理できる音声・動画 ストリームの数が制限されています:

  • リレーセッションでは、ストリームの数は2つまでです。1つのアプリには、 最大2つのサブスクライバー、あるいは1つのパブリッシャーと1つのサブスクライバーを 持つことができます。
  • ルーティングされたセッションでは、アプリは1つのオーディオ・ビデオパブリッシャー、 1つのオーディオ・ビデオサブスクライバー、および最大3つの追加のオーディオ専用 サブスクライブストリームを同時にサポートできます。

(中継およびルーティングされたセッションに関する詳細については、 メディアモード (セッションの)

サブスクライバーを初期化すると、そのサブスクライバーオブジェクトのビューが スーパービューに追加されているかどうかに関係なく、OpenTok サーバーからのデータストリーミングが開始されます。

以下の設定を行うことで、 (動画ストリームを購読せずに)音声のみをストリーミング再生することができます。 [OTSubscriberKit subscribeToVideo] OTSubscriber オブジェクトの初期化直後に、 このプロパティを NO に設定してください。 (オーディオストリームを購読せずに)ビデオのみをストリーミングするには、 次の設定を行います。 [OTSubscriberKit subscribeToAudio] OTSubscriber オブジェクトの初期化直後に、 このプロパティを NO に設定してください。

加入者がストリームに接続すると、 [OTSubscriberKitDelegate subscriberDidConnectToStream:] メッセージが送信される。

OTSubscriber オブジェクトの場合、ビデオの最初のフレームがデコードされると、 その [OTSubscriberDelegate subscriberVideoDataReceived:] メッセージが送信される。

加入者がストリームに接続できない場合、 [OTSubscriberKitDelegate subscriber:didFailWithError:] メッセージが送信される。

登録地

OTSubscriberKit.h

– getRtcStatsReport:

サブスクライバーの RTC 統計レポートを取得します。これは非同期操作です。 次の設定を行います。 [OTSubscriberKit rtcStatsReportDelegate] プロパティを定義し、 [OTSubscriberKitRtcStatsReportDelegate subscriber:rtcStatsReport:] メソッド このメソッドを呼び出す前に。統計情報が利用可能になると、 の [OTSubscriberKitRtcStatsReportDelegate subscriber:rtcStatsReport:] メッセージが送信されます。

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

パラメータ

error リクエストの処理中に同期的にエラーが発生した場合は、これを設定します。 OTSubscriberErrorCode enum(OTError.h ファイルで定義されている)は、 code このオブジェクトのプロパティ。エラーが発生しなかった場合、このオブジェクトはNULLになります。 こちらも参照してください [OTSubscriberKit networkStatsDelegate] そして [OTPublisherKit getRtcStatsReport].

登録地

OTSubscriberKit.h