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

概要

パブリッシャーは、指定したソースからオーディオ・ビデオストリームを取得します。その後、 以下の情報を送信することで、そのオーディオ・ビデオストリームを OpenTok セッションに配信することができます。 [OTSession publish:error:] というメッセージを送った。

OpenTok iOS SDK は、すべてのマルチコア iOS デバイスでの配信に対応しています。 詳細については、README ファイルの「開発者およびクライアントの要件」を参照してください。 OpenTok iOS SDK.

パブリッシャーの初期化

– initWithDelegate:

パブリッシャーオブジェクトを初期化し、デリゲートオブジェクトを指定します。

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

パラメータ

delegate 代表(OTPublisherKitDelegate) パブリッシャー用のオブジェクト。

戻り値

そのインスタンスへのポインタ、あるいは nil 初期化に失敗した場合。

考察

XcodeのiOSシミュレータで実行した場合、このメソッドは以下を返します nil.

登録地

OTPublisherKit.h

– initWithDelegate:settings:

パブリッシャーを、によって定義された設定で初期化します。 OTPublisherKitの設定 オブジェクトがある。

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

パラメータ

delegate 代表(OTPublisherKitDelegate) パブリッシャー用のオブジェクト。
settings OTPublisherKitの設定) パブリッシャーの設定を定義するオブジェクト。

登録地

OTPublisherKit.h

– initWithDelegate:name:

パブリッシャーオブジェクトを初期化し、デリゲートオブジェクトと ストリーム名を指定します。

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

パラメータ

delegate 代表(OTPublisherKitDelegate) パブリッシャー用のオブジェクト。
name 動画の配信元の名称。その [OTStream名] このパブリッシャーによって発行されたストリームのプロパティは、 (全てのクライアントで)この値に設定されます。

戻り値

そのインスタンスへのポインタ、あるいは nil 初期化に失敗した場合。

考察

この方法は非推奨です。代わりに [OTPublisherKit initWithDelegate:settings:] その代わりだ。

XcodeのiOSシミュレータで実行した場合、このメソッドは以下を返します nil.

登録地

OTPublisherKit.h

– initWithDelegate:name:audioTrack:videoTrack:

パブリッシャーを初期化し、このインスタンスでオーディオとビデオを 有効にするかどうかを指定します。

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

パラメータ

delegate 代表(OTPublisherKitDelegate) パブリッシャー用のオブジェクト。
name 動画の配信元の名称。その [OTStream名] このパブリッシャーによって発行されたストリームのプロパティは、 (全てのクライアントで)この値に設定されます。
audioTrack 音声を公開するか(YES)しないか(NO)。
videoTrack 動画を公開するか(YES)、しないか(NO)。

考察

この方法は非推奨です。代わりに [OTPublisherKit initWithDelegate:settings:] その代わりだ。

audioTrack または videoTrack のいずれかが NO に設定されている場合、 それぞれのサブシステムは初期化されず、対応する 設定を [OTPublisherKit publishAudio] そして [OTPublisherKit publishVideo] プロパティは効果を持ちません。

Applicationsで音声や動画を使用する必要がない場合は、 を使用するのではなく、これらの値を設定することをお勧めします。 [OTPublisherKit publishAudio] そして [OTPublisherKit publishVideo] プロパティ。これらはトラックを一時的に無効にするだけです。

登録地

OTPublisherKit.h

出版社に関する情報の入手

delegate

について OTPublisherDelegate OTPublisher オブジェクトのデリゲートであるオブジェクト。

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

考察

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

登録地

OTPublisherKit.h

audioLevelDelegate

このパブリッシャーの音声レベルに関するレポートを定期的に受け取っています。

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

考察

これは、delegate プロパティとして設定されているもの (OTPublisherKitDelegate オブジェクト)とは別のデリゲートオブジェクトです。

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

登録地

OTPublisherKit.h

networkStatsDelegate

について OTPublisherKitNetworkStatsDelegate 定期的に パブリッシャーの品質統計情報を受け取るオブジェクト。

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

考察

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

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

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

こちらも参照 [OTPublisherKit rtcStatsReportDelegate].

登録地

OTPublisherKit.h

rtcStatsReportDelegate

について OTPublisherKitRtcStatsReportDelegate そのパブリッシャーの RTC統計情報を報告するものです。その [OTPublisherKitRtcStatsReportDelegate publisher:rtcStatsReport:] このメッセージは、以下の呼び出しに対する応答として送信されます。 [OTPublisherKit getRtcStatsReport] メソッドを使用する。

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

登録地

OTPublisherKit.h

session

このパブリッシャーを所有するセッション。

@property (readonly) OTSession *session

登録地

OTPublisherKit.h

stream

について OTStream パブリッシャーに関連付けられたオブジェクト。

@property (readonly) OTStream *stream

登録地

OTPublisherKit.h

name

このパブリッシャーのストリームに関連付けられる文字列です。この文字列は、 公開されたストリームに関連付けられたサブスクライバーの動画の最下部に、 名前を表示するためのオーバーレイが存在する場合に表示されます。

@property (readonly) NSString *name

考察

この名前は、初期化時に設定する必要があります。つまり、 [OTPublisherKit initWithDelegate:settings:] というメッセージを送った。

この値のデフォルトは空の文字列です。

登録地

OTPublisherKit.h

– getRtcStatsReport

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

- (void)getRtcStatsReport

考察

こちらも参照 [OTPublisherKit networkStatsDelegate] そして [OTSubscriberKit getRtcStatsReport].

登録地

OTPublisherKit.h

パブリッシャーにおける音声および映像出力の制御

publishAudio

音声を公開するかどうか。

@property (nonatomic) BOOL publishAudio

考察

デフォルト値は TRUE です。

登録地

OTPublisherKit.h

publishVideo

動画を公開するかどうか。

@property (nonatomic) BOOL publishVideo

考察

デフォルト値は TRUE です。

登録地

OTPublisherKit.h

publishCaptions

キャプションを有効にするかどうか。

@property (nonatomic) BOOL publishCaptions

考察

デフォルト値は FALSE です。

登録地

OTPublisherKit.h

パブリッシャーデバイスの設定

videoCapture

について OTVideoCapture OpenTok セッションへストリーミングするための動画をキャプチャするために使用されるインスタンス。

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

登録地

OTPublisherKit.h

videoType

公開されるストリームの動画の種類を指定します。

@property (nonatomic, assign) OTPublisherKitVideoType videoType

考察

これを以下のいずれかの値に設定してください:

  • OTPublisherKitVideoTypeScreen — 画面共有用に動画の エンコードを最適化します。画面共有ストリームを配信するには、 OTPublisherKit オブジェクト用のカスタム動画キャプチャ機能を実装する必要があります。 詳細については、 [OTPublisherKit videoCapture]. この動画タイプでは、低いフレームレート (1秒あたり5フレーム以下)を使用することをお勧めします。OpenTok Media Server を使用するセッションで 「画面録画」タイプの動画を使用する場合、 OTPublisherKitの設定 オーディオのフォールバックプロパティは、デフォルトで「NO」に設定されています。 これにより、オーディオのみのフォールバック機能が無効化され、 購読者の側で動画が途切れることがなくなります。詳しくは OpenTok Media Router.
  • OTPublisherKitVideoTypeCamera — これはデフォルトの設定であり、カメラを 映像ソースとして使用する際にこの設定を使用してください。

登録地

OTPublisherKit.h

videoRender

について OTVideoRender OpenTok セッションへストリーミングするために動画をレンダリングする際に使用されるインスタンス。

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

登録地

OTPublisherKit.h

パブリッシャーのビデオビットレートプリセットの制御

maxVideoBitrate

パブリッシャーの動画ストリームの最大動画ビットレート(単位:ビット/秒(bps))。

@property (nonatomic) int maxVideoBitrate

考察

このプロパティは、パブリッシャーの動画ビットレートに、 5,000 から 10,000,000 の範囲で明示的な上限を設定します。 このプロパティを 0 手動で設定された上限をすべて解除し、 明示的な制限のない、プリセットに基づくデフォルトのアダプティブビットレート動作に戻します。

このプロパティを読み取ると、現在設定されている最大ビットレートが bps単位で返されます。手動でビットレートが設定されていない場合、またはビットレートのプリセットが有効な場合は、 その値は 0.

値は 0 は、明示的なビットレート制限が適用されていないことを示しており、 ストリームは品質を最適化するために適応型プリセットのルールに基づいて動作します。

こちらも参照 [OTPublisherKit videoBitratePreset] そして パブリッシャー最大ビットレート.

登録地

OTPublisherKit.h

videoBitratePreset

パブリッシャーの動画ストリームに適用される、動画ビットレートのプリセット戦略。

@property (nonatomic) OTVideoBitratePreset videoBitratePreset

考察

このプロパティは、動画の画質と 帯域幅の使用量のバランスをとるために、あらかじめ定義されたビットレート戦略を設定します。利用可能なプリセットには、デフォルトの動作、中程度の帯域幅 節約、および積極的な帯域幅節約モードがあります。プリセット戦略を使用することで、 ビットレートの値を明示的に指定することなく、エンコーダの動作を制御できます。

プリセット設定と手動のビットレート設定は、互いに排他的です。 設定 maxVideoBitrate プリセット設定を上書きし、このプロパティの値を自動的に 次のように変更します。 OTVideoBitratePresetCustom.

このプロパティを読み取ると、現在有効なプリセットが返されます。カスタムビットレートが 手動で設定されている場合、その値は OTVideoBitratePresetCustom.

デフォルト値は OTVideoBitratePresetDefault.

こちらも参照 [OTPublisherKit maxVideoBitrate] そして パブリッシャー最大ビットレート.

登録地

OTPublisherKit.h

degradationPreference

帯域幅やCPUの制約に応じて、ビデオエンジンがフレームレートや解像度を調整する際に優先して適用するポリシー。 設定可能な値の詳細については、OTDegradationPreferenceを参照してください。

@property (nonatomic) OTDegradationPreference degradationPreference

登録地

OTPublisherKit.h

targetScalabilityMode

setTargetScalabilityMode:error: を通じて明示的に設定されたターゲットスケーラビリティモード。 セッターに最後に渡された値を返します。セッターが一度も呼び出されていない場合は null を返します。 これはユーザーの意図を反映したものであり、実際に適用されたモード(コーデック依存のフォールバックにより異なる場合があります) を示すものではありません。

@property (nonatomic, readonly) NSString *targetScalabilityMode

考察

これはベータ版の機能です。

登録地

OTPublisherKit.h

– setTargetScalabilityMode:error:

このパブリッシャーのターゲットスケーラビリティモード(SVC - スケーラブル・ビデオ・コーディング)。 スケーラビリティモードは、WebRTC がエンコードする空間(解像度)および時間(フレームレート)の レイヤー数を制御します。このモードは、メディアルーターのメディアパスに適用されます。

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

パラメータ

mode 希望するスケーラビリティモードの文字列(例:@“L1T3”)。L1T1、L1T2、L1T3、L2T1、L2T2、L2T3、L3T1、L3T2、L3T3のいずれかでなければなりません。
error 失敗した場合は、ドメイン「OT_PUBLISHER_ERROR_DOMAIN」、コード「OTPublisherInvalidScalabilityMode」を持つOTErrorに設定します。

考察

セッターはいつでも呼び出すことができます。メディアパスのネゴシエーションが 完了している必要はありません。このモードは、メディアルーターのメディアパスが確立されると適用されます。

メディアルーターのメディアパス上でSVC以外のコーデック(VP8、H.264)がネゴシエーションされた場合、最も近い 適用可能なモードが使用されます。具体的には、空間レイヤーが強制的に1に設定され、時間次元は 維持されます(例:VP8がネゴシエーションされた場合、L2T2 → L1T2となります)。

登録地

OTPublisherKit.h

メディアトランスフォーマーの設定

videoTransformers

ストリームに適用される順序で並べられた OTVideoTransformer の配列。

@property (nonatomic, strong) NSArray *videoTransformers

登録地

OTPublisherKit.h

audioTransformers

ストリームに適用される順序で並べられた OTAudioTransformer の配列。

@property (nonatomic, strong) NSArray *audioTransformers

登録地

OTPublisherKit.h