プロパティ | properties オブジェクト | 方法 | イベント

について OTPublisher このコンポーネントは、マウント時にパブリッシャーを初期化し、指定されたセッションにデータを公開します。パブリッシャーを破棄するには、 OTPublisher コンポーネント。パブリッシャービューは、明示的にアンマウントしない限り削除されないことにご注意ください。 OTPublisher コンポーネントを使用している。

OTPublisher コンポーネントを OTSession コンポーネントの子として追加します:

class App extends Component {
  constructor(props) {
    super(props);

    this.publisherProperties = {
      publishAudio: true,
      publishVideo: false,
      publishCaptions: true,
      cameraPosition: 'front'
    };

    this.publisherEventHandlers = {
      streamCreated: event => {
        console.log('Publisher stream created!', event);
      },
      streamDestroyed: event => {
        console.log('Publisher stream destroyed!', event);
      }
    };
  }

  render() {
    return (
      <OTSession apiKey="your-api-key" sessionId="your-session-id" token="your-session-token">
        <OTPublisher
          properties={this.publisherProperties}
          eventHandlers={this.publisherEventHandlers}
          style={{ height: 100, width: 100 }}
        />
      </OTSession>
    );
  }
}

小道具

OTPublisher コンポーネントには以下のプロパティがあり、いずれもオプションです:

  • sessionId (文字列) -- OpenTokのセッションID。これは、ラップすることで自動的に入力されます。 OTPublisherOTSession, そのため、通常、OTPublisherに対してこのプロパティを設定する必要はありません。

  • properties (オブジェクト) -- パブリッシャー・インスタンスのオプション。次のセクションを参照してください。 properties オブジェクト.その properties このオブジェクトは、パブリッシャーの初期設定に使用されます。 この OTPublisher このオブジェクトは、のいくつかのキーの変更を監視します。 properties オブジェクト、 そして必要な変更を加えます。現在、それらは以下の通りです:

    • cameraPosition -- カメラを「front」または「back」に設定します。

    • publishAudio -- オーディオをオンに切り替えます (true) またはオフ false.

    • publishVideo -- 動画をオンに切り替えます (true) またはオフ false.

    • publishCaptions -- キャプションの表示を切り替えます (true) またはオフ false 公開されたストリームについて。

  • eventHandlers (オブジェクト) -- イベント名と、イベントハンドラ用の コールバック関数とのキー・値のペアを含むオブジェクト。詳しくは イベント.

properties オブジェクト

について properties OTPublisher オブジェクトに渡されるオブジェクトには、以下のプロパティがあります:

  • allowAudioCaptureWhileMuted (ブール値) false に設定すると、配信者が音声をミュートした際にマイクが自動的にオフになります。配信者がミュートを解除すると、マイクは自動的に再びオンになります。true に設定すると、配信者が音声をミュートしても、マイクは常にオンのままになります。デフォルト値は false です。

  • オーディオビットレート (数値) -- 配信されるオーディオの希望ビットレート(ビット/秒単位)。 サポートされる値の範囲は 6,000 ~ 510,000 です。(無効な値は無視されます。)この値を設定することで、高音質のオーディオを有効にしたり(あるいは、低音質のオーディオで帯域幅の使用量を削減したり)することができます。

    以下は推奨設定です:

    • 8,000~12,000(ナローバンド(NB)スピーチ用
    • 16,000~20,000(ワイドバンド(WB)スピーチ用
    • フルバンド(FB)スピーチで28,000~40,000ドル
    • フルバンド(FB)音楽用48,000~64,000ドル
    • フルバンド(FB)ステレオ音楽の場合、64,000~128,000

    デフォルト値は 40,000 です。

  • audioFallbackEnabled (オブジェクト) —- の設定 オーディオ・フォールバック機能. その audioFallback オブジェクトには2つのブール・プロパティがある:

    • publisher - を有効にするかどうか(true)または無効(false) パブリッシャーのオーディオフォールバック。パブリッシャーのオーディオフォールバックを有効にすると、ストリームの品質が著しく低下した場合(例えば、ネットワーク状況の悪化など)、パブリッシャーはオーディオ品質を維持するために動画を無効にします。デフォルト設定は false (パブリッシャーオーディオのフォールバックは無効)。

    • subscriber - を有効にするかどうか(true)または無効(false)加入者オーディオのフォールバック。この設定は、ルーティングされたセッション( OpenTok メディアルーター). リレーされたセッションでは、サブスクライバーのオーディオフォールバックはサポートされていません。サブスクライバーのオーディオフォールバックが有効になっている場合、OpenTok Media Router が特定のサブスクライバーに対してストリームの品質が著しく低下したと判断すると、オーディオ品質を維持するために、そのサブスクライバーのビデオを無効にします。 カメラをビデオソースとして使用する ストリームの場合、デフォルト設定は true (オーディオのフォールバック機能が有効になっています)。デフォルト設定は false (オーディオのフォールバック機能は無効になっています)画面共有ストリーム( 以下のように videoSource OTPublisher コンポーネントで「screen」に設定されたプロパティ)。この設定により、 audioFallbackEnabled プロパティは非推奨となる。

  • audioFallbackEnabled (ブール値) —- 非推奨。これは subscriber プロパティの audioFallback プロパティ(上記参照)。

  • audioTrack (ブール値) -- このプロパティが false に設定されている場合、パブリッシャーのオーディオサブシステムは初期化されず、 publishAudio このプロパティを設定しても効果はありません。Applications でオーディオを使用する必要がない場合は、オーディオトラックを一時的に無効にするだけの publishAudio プロパティを使用するよりも、このプロパティを設定することをお勧めします。

  • カメラ位置 (文字列) -- 推奨されるカメラの位置。このプロパティを設定すると、変更が可能な場合、パブリッシャーは指定された位置のカメラを使用します。有効な値は「front」(デフォルト)および「back」です。

  • cameraTorch (ブール値) -- カメラで優先的に使用する懐中電灯(トーチ)モード。このプロパティを設定することで、パブリッシャーが有効にするべきかどうかを指定します(true)または無効(false(デフォルト設定)利用可能な場合は、カメラのフラッシュライトを使用します。これは設定項目であり、現在使用中のカメラがフラッシュライト機能をサポートしていない場合、この設定が反映されないことがあります(例えば、フロントカメラは通常、フラッシュライト機能をサポートしていません)。

  • cameraZoomFactor (数値) -- カメラの推奨ズーム倍率(比率)。値が 1.0 の場合はズームなし(デフォルトの表示)を表します。値の範囲は 0.5 から最大ズーム倍率までです。 0.5 から 1.0 までの値は超広角(ズームアウト)を表し、1.0 から最大ズーム倍率までの値はズームインを表します。 実際に適用されるズーム倍率は、アクティブなカメラの設定でサポートされている範囲内に自動的に制限されます。カメラが超広角をサポートしていない場合、1.0未満に設定されたズーム倍率は有効にならず、ズームは適用されません。 カメラがサポートする最大ズーム倍率を超える値が指定された場合、ズーム倍率は最大値に設定されます。

  • 劣化優先度 (DegradationPreference) -- 帯域幅やCPUリソースが限られている状況下で優先される動画の画質低下ポリシー。

  • enableDtx (ブール値) - 有効にするかどうか Opus DTX.デフォルト値は false. これを「true」に設定すると、長時間の無音が続くストリームにおける帯域幅の使用量を削減できます。

  • frameRate (数値) - 動画の希望フレームレート(1秒あたりのフレーム数)。有効な値は 30、15、7、1 です。公開されるストリームでは、公開クライアントでサポートされている値のうち、設定値に最も近い値が使用されます。 クライアントのデバイスによっては、フレームレートが設定した値と若干異なる場合があります。また、動画が指定されたフレームレートを使用するのは、クライアントの設定でそれがサポートされている場合に限られます。

  • maxVideoBitrate (数値) - パブリッシャーの動画ストリームの最大ビットレート(ビット/秒(bps))。このプロパティは、パブリッシャーの動画ビットレートに 5,000 から 10,000,000 の範囲で明示的な上限を設定します。この maxVideoBitrate このプロパティは、 videoBitratePreset プロパティ。両方が設定されている場合、 maxVideoBitrate プロパティが使用されます。詳細については、以下を参照してください。 本書.

  • 名称 (文字列) -- このパブリッシャーのストリームに関連付けられる文字列です。この文字列は、パブリッシャーの動画の下部、および公開されたストリームに関連付けられたサブスクライバーの動画の下部に表示されます。値を指定しない場合、名前はデバイス名に設定されます。

  • 推奨ビデオコーデック (PreferredVideoCodecs) -- 公開時の優先動画コーデック。値は「automatic」または、優先順位順に並べた動画コーデックの配列に設定できます。サポートされている動画コーデックは「vp8」、「vp9」、および「h264」です。 動画コーデックは大文字と小文字が区別され、有効な値は「vp8」、「vp9」、または「h264」のみです。「automatic」に設定すると、SDKが最適な順序を選択します。省略された場合、SDKはプロジェクトのデフォルト設定を使用します。 配列に無効なビデオコーデックが含まれている場合、それらは無視され、有効なビデオコーデックがリストされた順序で優先されます。空の配列が渡された場合、空の文字列が指定された場合、または「automatic」以外の文字列が指定された場合、SDKはプロジェクトのデフォルト設定を使用します。 詳細については、以下を参照してください。 本書.

  • audioを公開する (ブール値) -- 音声を公開するかどうか。デフォルトは true.

  • publishVideo (ブール値) -- 動画を公開するかどうか。デフォルトは true.

  • キャプションを公開 (ブール値) — キャプションを公開するかどうか。なお、セッションでキャプションが有効になっていること(Video APIのRESTメソッドまたはサーバーSDKを使用)、およびパブリッシャーがオーディオを配信していることが必要です。詳細については、 ライブ・キャプション開発者ガイド.

  • publishSenderStats (ブール値) - パブリッシャーの送信者統計チャネルを有効にします。現在、この機能は参加者が 2 人以上の通話のみに対応しています。詳細については、以下を参照してください。 本書.

  • スケーラブルな画面共有 (ブール値) -- 画面共有を行うパブリッシャーにおいて、 {scalable video}(/developer/guides/scalable-video/) の使用を許可するかどうか (true) または許可しないかどうか (false、デフォルト)。これは、 videoSource set を「screen」に設定する。

  • scaleBehavior (文字列) - レンダリング時の動画の拡大縮小方法を指定します。サポートされている値は以下の通りです。 fill (デフォルト)と fit.このプロパティは現在iOSでのみサポートされています。

  • 決議 (文字列) - 動画の希望解像度。 文字列の形式は「幅×高さ」であり、幅と高さはピクセル単位で表されます。有効な値は「1920x1080」、「1280x720」、「640x480」、および「352x288」です。 公開される動画が指定された解像度を使用するのは、クライアントの設定がそれをサポートしている場合のみです。一部のデバイスやクライアントでは、これらの解像度設定のすべてに対応していない場合があります。

  • videoBitratePreset (文字列) - パブリッシャーの動画ストリームに適用される動画ビットレートのプリセット戦略。このプロパティには、次の文字列値のいずれか('default'、'bw_saver'、または 'extra_bw_saver')を設定してください。このプロパティは、 videoBitratePreset プロパティが設定されています。どちらも設定されていない場合、パブリッシャーはデフォルトのプリセットを使用します。詳細については、以下を参照してください。 本書.

  • videoContentHint (文字列) -- パブリッシャーのストリームに含まれるビデオトラックのコンテンツヒントを設定します。この値には、次のいずれかを指定できます:「」、「motion」、「details」、または「text」。詳細については、 ドキュメンテーション のために videoContentHint のオプション OT.initPublisher() OpenTok.js SDK のメソッド。

  • videoTrack (ブール値) -- このプロパティが false に設定されている場合、パブリッシャーのビデオサブシステムは初期化されず、publishVideo プロパティを設定しても何の効果もありません。 Applications でビデオ機能を使用する必要がない場合は、ビデオトラックを一時的に無効にするだけの `publishVideo` プロパティを使用するよりも、このプロパティを設定することをお勧めします。

  • videoSource (文字列) -- 画面共有ストリームを配信するには、このプロパティを「screen」に設定します。値を指定しない場合、デフォルトは「camera」になります。

方法

getRtcStatsReport() パブリッシャーの RTC 統計レポートを取得します。これは非同期操作です。 OTPublisher オブジェクトは、 rtcStatsReport パブリッシャーのRTC統計情報が利用可能になった際のイベント。

setAudioTransformers() -- パブリッシャーのオーディオトランスフォーマーを設定します。

<P class="important"> <B>重要:</B> このメソッドを使用するには、OpenTok React Native SDKとは別に、Vonage Media Transformerライブラリをプロジェクトに追加する必要があります。詳細については、以下を参照してください。 Vonage Media Libraryの統合. </p>

1つのオーディオトランスがサポートされています――ノイズ抑制フィルターです。

このメソッドには1つのパラメータがあります。それは、パブリッシャーのストリームに適用する各トランスフォーマーを定義するオブジェクトの配列です。トランスフォーマーオブジェクトには2つのプロパティがあります:

  • name (文字列) -- これを次のように設定します 'NoiseSuppression'.

  • properties (文字列) -- これを空の文字列に設定します。

公開ストリームからオーディオトランスを削除するには OTPublisher.setAudioTransformers() メソッドに空の配列を渡す。

重要だ: ノイズ抑制フィルターなどのメディア変換処理は、リソースを大量に消費するため、高い処理能力を持つデバイスが必要です。これらの変換処理は、対応しているデバイスでのみ使用することをお勧めします。以下のドキュメントを参照してください:

トランスに関する詳細については、以下を参照してください。 Vonage Media Processorライブラリの使用

setVideoTransformers() -- パブリッシャーのビデオトランスフォーマーを設定します。

<P class="important"> <B>重要:</B> Vonage Video React Native SDK バージョン 2.28.0 以降では、このメソッドを使用するには、 Vonage Video React Native SDK とは別に Vonage Media Library を追加する必要があります。 詳細については、以下を参照してください。 Vonage Media Libraryの統合. </p>

このメソッドには1つのパラメータがあります。それは、パブリッシャーのストリームに適用する各トランスフォーマーを定義するオブジェクトの配列です。トランスフォーマーオブジェクトには2つのプロパティがあります:

  • name (文字列) -- 「BackgroundBlur」(背景ぼかしフィルター用)または「BackgroundReplacement」(背景画像置換フィルター用)のいずれか。

  • properties (文字列) -- Vonage ビデオトランスフォーマーのプロパティを含む JSON 文字列。

    背景ぼかしトランスフォーマーの場合、JSONの形式は次のとおりです:

    `{
       "radius" :"None"
     }`
    

    radius プロパティの有効な値は、「None」、「High」、および「Low」です。

    カスタム背景ぼかしトランスフォーマーの場合、JSONの形式は次のとおりです:

    `{
      "radius": "Custom",
      "custom_radius": "value"
    }`
    

    custom_radius 任意の正の整数である。

    バックグラウンド置換トランスフォーマーの場合、JSONの形式は次のとおりです:

    `{
      "image_file_path": "path/to/image"
    }`
    

    どこ image_file_path は、仮想背景として使用するローカル画像の絶対ファイルパスです。サポートされている画像形式はPNGとJPEGです。

公開されたストリームからビデオトランスフォーマーを削除するには、 OTPublisher.setVideoTransformers() メソッドに空の配列を渡す。

重要だ: 背景のぼかしや背景の置換などのメディア変換処理は、リソースを大量に消費するため、高い処理能力を持つデバイスが必要です。これらの変換処理は、対応しているデバイスでのみ使用することをお勧めします。以下のドキュメントを参照してください:

トランスに関する詳細については、以下を参照してください。 Vonage Media Processorライブラリの使用

イベント

  • audioLevel (数値) -- 0 から 1.0 までのオーディオレベル。音量メーターなどのユーザーインターフェース要素の調整に使用する場合は、この値を対数スケールで調整してください。データを平滑化するには、移動平均を使用してください。

  • audioNetworkStats (オブジェクト) — パブリッシャーのオーディオ統計情報を報告するために定期的に送信されます。 A パブリッシャーオーディオネットワーク統計イベント オブジェクトがイベントハンドラに渡されます。

  • エラー (オブジェクト) -- パブリッシャーでエラーが発生した場合に送信されます。このメッセージが送信された後、パブリッシャーはセッションから完全に切り離されたものとみなされ、解放される可能性があります。

  • muteForced -- モデレーターがこのクライアントの音声を出力不可に設定した際に送信されます。

  • otrnError (オブジェクト) -- ネイティブのパブリッシャーインスタンスとJSコンポーネント間の通信でエラーが発生した場合に送信されます。

  • rtcStatsReport (オブジェクト) -- パブリッシャー向けの RTC 統計レポートが利用可能になった際に、 以下の呼び出しに応答して送信されます。 OTPublisher.getRtcStatsReport() メソッド。A PublisherRtcStatsReportイベント オブジェクトが イベントハンドラに渡されます。このイベントには、 オブジェクトの配列が含まれています。ルーティングされたセッション( OpenTok メディアルーター), この配列には、OpenTok Media Router に送信される単一のビデオメディアストリームの統計情報を定義する 1つのオブジェクトが含まれています。中継セッションでは、この配列には、公開されたストリームの各加入者ごとに 1つのオブジェクトが含まれます。各オブジェクトには、次の2つのプロパティが含まれます:

    • connectionId -- リレー型セッション(パブリッシャーが個々のメディアストリームを 各サブスクライバーに送信するセッション)の場合、これはクライアントの接続を一意に識別するIDです。

    • jsonArrayOfReports -- メディアストリームのRTC統計レポートを含むJSON配列。このJSON配列の構造は、 Webブラウザで実装されているRtcStatsReportオブジェクトの形式と類似しています (詳細は Mozillaのドキュメント). 以下も参照のこと。 このW3Cドキュメント.

  • streamCreated (オブジェクト) -- パブリッシャーがストリーミングを開始したときに送信されます。 A ストリーミングイベント オブジェクトがイベントハンドラに渡されます。

  • streamDestroyed (オブジェクト) -- パブリッシャーがストリーミングを停止したときに送信されます。 A ストリーミングイベント オブジェクトがイベントハンドラに渡されます。

  • videoDisabled -- 配信者が以下の理由により動画の配信を停止した際に送信されます パブリッシャー・オーディオ・フォールバック.

  • videoDisableWarning -- ネットワーク状態の悪化により、パブリッシャーが「音声のみ」のフォールバックに移行しようとしている際に送信されます。詳細については、以下を参照してください。 パブリッシャー・オーディオ・フォールバック.

  • videoDisableWarningLifted -- ネットワーク状況が改善した際に、videoDisableWarning イベントの発生後に送信されます。詳細については、 パブリッシャー・オーディオ・フォールバック.

  • videoEnabled -- 以下の理由により動画の送信が無効化された後、配信者が送信を再開した際に送信されます。 パブリッシャー・オーディオ・フォールバック.

  • videoNetworkStats (オブジェクト) -- パブリッシャーのオーディオ統計情報を報告するために定期的に送信されます。 A パブリッシャービデオネットワーク統計イベント オブジェクトがイベントハンドラに渡されます。