小道具 | セッションのオプション | 方法 | イベント

について OTSession このコンポーネントは、OpenTokセッションへの接続を管理します。このコンポーネントは、セッションIDを sessionId その子コンポーネントにプロパティを割り当てます。セッションを切断するには、 OTSession コンポーネント。 パブリッシュおよびサブスクライブを行うには、ネストする必要があります OTPublisher そして OTSubscriber 内部 OTSession:

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

    this.state = {
      isConnected: false,
    };

    this.otSessionRef = React.createRef();

    this.sessionEventHandlers = {
      streamCreated: event => {
        console.log('Stream created!', event);
      },
      streamDestroyed: event => {
        console.log('Stream destroyed!', event);
      },
      sessionConnected: event => {
        this.setState({
          isConnected: true,
        })
      }
    };
  }

  sendSignal = () => {
    if (this.state.isConnected) {
      this.otSessionRef.current.signal({
        data: 'hello',
        to: '6d26ca65-24c9-45df-b827-424e9952dece', // optional - connection ID of client to recieve the signal
        type: 'greeting', // optional
      })
    }
  }

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

セッションオプションは、 options prop:

class App extends Component {
constructor(props) {
  super(props);
  this.sessionOptions = {
    connectionEventsSuppressed: true, // default is false
    androidZOrder: '', // Android only - valid options are 'mediaOverlay' or 'onTop'
    androidOnTop: '',  // Android only - valid options are 'publisher' or 'subscriber'
    useTextureViews: true,  // Android only - default is false
    ipWhitelist: false, // (/developer/sdks/js/reference/OT.html#initSession - ipWhitelist
    enableStereoOutput: true // Enable stereo output, default is false
    enableSinglePeerConnection: true // Enable single peer connection, default is false
    iceConfig:{
      transportPolicy: 'all', // Valid options are 'all' or 'relay'. Default is 'all'
      includeServers: 'all', // Valid options are 'all' or 'custom'. Default is 'all'
      customServers: [
        {
        urls: [
          'turn:123.124.125.126:3478?transport=udp',
          'turn:123.124.125.126:3478?transport=tcp'
        ],
        username: 'webrtc',
        credential: 'foO0Bar1'
        },
      ],
      filterOutLanCandidates: false, // The default is false
    },
  };
}

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

すべてのセッションオプションは任意である点にご注意ください。詳しくは セッションのオプション.

小道具

OTSession オブジェクトには、以下のプロパティがあります:

apiKey (文字列、必須) -- OpenTok プロジェクトの API キー。

セッションID (文字列、必須) -- OpenTokのセッションID。

トークン (文字列、必須) -- クライアント用の OpenTok トークン。

オプション (オブジェクト、省略可) -- セッションのオプションを定義するために使用されます。詳しくは セッションのオプション.

信号 (オブジェクト、省略可) -- セッションにシグナルを送信するために使用されます

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

暗号化秘密 (文字列、オプション) -- クライアントが発行および購読するすべてのストリームに使用する暗号化シークレット(エンドツーエンド暗号化を使用するセッション内)。エンドツーエンド暗号化を参照してください。 開発者ガイド.

セッションのオプション

について options OTSession コンポーネントの prop には、以下のプロパティがあります(いずれもオプションです):

androidZOrder (文字列) -- 「mediaOverlay」または「onTop」に設定します。Androidのみ。

androidOnTop (文字列) -- 「publisher」または「subscriber」に設定します。Androidのみ。

connectionEventsSuppressed (ブール値) -- 防止するかどうか connectionCreated そして connectionDestroyed イベントがディスパッチされるのを防ぎます。次のような大規模なセッションでは、 これらのイベントを抑制した方が良い場合があります。 双方向ビデオ生放送. デフォルト値は false です。

enableStereoOutput (ブール値) -- ステレオ出力を有効にするかどうか。デフォルト値は false です。

enableSinglePeerConnection (ブール値) -- 以下の値に設定します true クライアントに単一のピア接続を使用させる。デフォルト値は false. この機能は、ルーティングされたセッションでのみ利用可能です。詳細については、以下を参照してください。 本書.

iceConfig (オブジェクト) -- の使用に関する設定 設定可能なTURN機能. この機能は、 アドオン機能.

このオブジェクトには、以下のプロパティがあります:

  • includeServers (文字列) クライアントが、貴社のTURNサーバーのみを使用するか(「custom」)、 それともOpenTokのTURNサーバーに加えてそれらを使用するか(「all」)を指定します。

  • transportPolicy 'all' | 'relay';

  • customServers (配列) -- 使用するカスタム TURN サーバーを定義するオブジェクトの配列。 各オブジェクトには、以下のプロパティがあります:

    • urls (文字列の配列) -- TURNサーバーのURL。
    • username (文字列、省略可) -- ユーザー名。
    • credential: (文字列、省略可) -- TURN サーバーの認証情報。
  • filterOutLanCandidates -- 同じローカルエリアネットワーク上のホストのICE候補タイプを除外し、アプリケーションがローカルネットワークを使用してメディア接続を確立しないように強制するかどうか。 この設定は iOS のみに適用されます(Android では無視されます)。ローカル候補を除外することで、リレーセッションにおいてアプリが同じローカルネットワーク上のクライアントを購読しようとした際に、ユーザーに権限の許可を求めるプロンプトが表示されるのを防ぐことができます。

なお、他の iceConfig この設定は 違う が必要である。 設定可能なTURNサーバー アドオン機能。

詳細は以下を参照のこと。 本書.

ipホワイトリスト (ブール値) -- 以下の機能を使用するかどうか 許可済みIPリスト 機能。 これは、 アドオン機能 デフォルト値は false です。

isCamera2Capable (ブール値) -- 非推奨であり、無視されます。Androidのみ。

proxyUrl (文字列、省略可) -- セッションで使用するプロキシURL。 これは アドオン 機能。詳しくは OpenTok IPプロキシ 開発者ガイド

セッション移行 (ブール値) -- セッション移行機能を有効にし、サーバーのローテーション中もクライアントが接続を維持できるようにします。デフォルト値は false です(セッション移行は有効になっていません)。詳細については、以下を参照してください。 サーバーのローテーションとセッションの移行.

useTextureViews (ブール値) -- 以下の値に設定します true テクスチャビューを使用するには。デフォルトは false. Androidのみ。

方法

disableForceMute() セッションのアクティブなミュート状態を解除します。このメソッドを呼び出すと、そのセッションに配信される新しいストリームの音声はミュートされなくなります。

Session.forceMuteAll() メソッドを呼び出した後(または別のクライアントのモデレーターがすべてのストリームをミュートする呼び出しを行った後)、そのモデレーション呼び出し以降に配信されるストリームは、音声がミュートされた状態で配信されます。 OTSession.disableForceMute() セッションのミュート状態を解除する方法(これにより、新たに公開されるストリームが自動的にミュートされるのを防ぐ)。

チェック capabilities.canForceMute が返すオブジェクトの OTSession.getCapbabilities() この関数を正常に呼び出せるかどうかを確認してください。これは、モデレーターの役割が割り当てられたトークンで接続したクライアント専用です( トークン作成に関するドキュメント).

getSessionInfo() 以下のプロパティを持つオブジェクトを返します:

  • sessionId (文字列) -- セッション ID。

  • connection (オブジェクト) -- ローカルクライアントとセッションとの接続を定義するオブジェクト。 これには、以下のプロパティが含まれます:

    • connectionId (文字列) -- ローカルクライアントの接続ID。

    • creationTime(文字列) -- 接続が確立された時刻。

    • data (文字列) -- The 接続データ ローカルクライアント向け。

getCapabilities() クライアントが、に割り当てられたロールに基づいて、セッション内でストリームのパブリッシュおよびサブスクライブを行うことができるかどうかを示します。 クライアントトークン セッションへの接続に使用されます。このメソッドは、以下のプロパティを持つオブジェクトで解決される Promise を返します:

  • canForceMute (ブール値) -- クライアントがセッション内のストリームを強制的にミュートにしたり、セッション内のアクティブなミュート状態を無効にしたりできるかどうか (true)または(false).

  • canPublish (ブール値) -- クライアントがセッションにストリームを公開できるかどうか (true)または(false).

  • canSubscribe (ブール値) -- クライアントがセッション内のストリームを購読できるかどうか (true)または(false).

セッションに接続しておらず、かつ connectionCreated イベントがディスパッチされました。

詳細は OpenTok トークンのドキュメント.

reportIssue() アプリで問題が発生したことを報告できます(表示するには インスペクター または、Vonage API サポートチームに相談する場合。)このメソッドは、問題IDを表す文字列で解決されるPromiseを返します。

forceDisconnect() セッションに接続しているクライアントを強制的に切断します。接続中のクライアントの接続IDをパラメータとして渡してください。

チェック capabilities.canForceDisconnect が返すオブジェクトの OTSession.getCapbabilities() この関数を正常に呼び出せるかどうかを確認してください。これは、モデレーターの役割が割り当てられたトークンで接続したクライアント専用です( トークン作成に関するドキュメント).

forceMuteAll() そのセッションに参加しているすべての配信者(除外されたストリームを配信している配信者を除く)に対して、音声をミュートするように強制します。

このメソッドには、1つのオプションのパラメータがあります―― excludedStreams、およびストリームIDの配列。forceMuteAll() メソッドを呼び出したモデレーターが配信しているストリームは、そのモデレーターのストリームを excludedStreams 配列。もし excludedStreams パラメータが指定されると、セッション内のすべてのストリーム(モデレーターのストリームを含む)は音声の配信を停止します。また、 forceMuteAll() メソッドを呼び出すと、オーディオがミュートされた状態でパブリッシュされます。セッションのミュート状態を解除するには OTSession.disableForceMute() メソッドを使用する。

を呼び出した後 Session.disableForceMute() このメソッドを呼び出すと、セッションに新たに公開されるストリームの音声がミュートされなくなります。 このメソッドを呼び出すと、ストリームを公開している各クライアントの Publisher オブジェクトが muteForced イベントをディスパッチします。また、セッションに接続している各クライアントの Session オブジェクトも、muteForced イベントをディスパッチします(この際、イベントオブジェクトの active プロパティは true に設定されます)。

チェック capabilities.canForceMute が返すオブジェクトの OTSession.getCapbabilities() この関数を正常に呼び出せるかどうかを確認してください。これは、モデレーターの役割が割り当てられたトークンで接続したクライアント専用です( トークン作成に関するドキュメント).

forceMuteStream() 指定したストリームの配信者に、音声をミュートするよう強制します。ストリームIDを パラメータとして指定してください。

チェック capabilities.canForceMute が返すオブジェクトの OTSession.getCapbabilities() この関数を正常に呼び出せるかどうかを確認してください。これは、モデレーターの役割が割り当てられたトークンで接続したクライアント専用です( トークン作成に関するドキュメント).

signal() セッションに接続しているクライアントにシグナルを送信します。このメソッドには1つのパラメータがあり、 それは以下のプロパティを含むオブジェクトです。各プロパティはオプションですが、 (通常は data プロパティ):

  • connectionId (文字列) -- シグナルを送信するクライアントの接続 ID。これを 省略した場合、そのセッションに接続しているすべてのクライアントにシグナルが送信されます。

  • type (文字列) -- シグナルの種類。

  • data (文字列) -- 信号データ。

詳細は OpenTok シグナリング開発者ガイド

イベント

アーカイブの開始 (オブジェクト) — セッションのアーカイブ録画が開始されたときに送信されます。録画がすでに進行中のセッションに接続した場合、接続時にこのメッセージが送信されます。 An アーカイブイベント オブジェクトがイベントハンドラに渡されます。

アーカイブ停止 (文字列) — セッションのアーカイブ録画が停止したときに送信されます。 An アーカイブイベント オブジェクトがイベントハンドラに渡されます。

接続が作成されました (オブジェクト) — 別のクライアントがセッションに接続した際に送信されます。この接続オブジェクトは、そのクライアントの接続を表します。 A ConnectionCreatedEvent オブジェクトがイベントハンドラに渡されます。

接続が切断されました -- 別のクライアントがセッションから切断されたときに送信されます。connection オブジェクトは、そのクライアントがセッションに対して確立していた接続を表します。 A ConnectionDestroyedEvent オブジェクトがイベントハンドラに渡されます。

エラー (オブジェクト) — セッションへの接続に失敗した場合、または接続に成功した後、エラーによりセッションとの接続が切断された場合に送信されます。 An ErrorEvent オブジェクトがイベントハンドラに渡されます。

muteForced -- モデレーターが、セッションにストリームを配信しているクライアントに対して音声のミュートを強制した際に送信されます(その active これの属性 MuteForcedEvent object は true)、あるいはモデレーターがセッション内の音声ミュート状態を無効にした場合(この MuteForcedEvent object は false). ある ErrorEvent オブジェクトがイベントハンドラに渡されます。

otrnError -- ネイティブセッションインスタンスとJSコンポーネント間の通信にエラーが発生した場合に送信されます。

sessionConnected -- クライアントがセッションに接続した際に送信されます。 A SessionConnectEvent オブジェクトがイベントハンドラに渡されます。

セッションが切断されました -- クライアントがセッションから切断されたときに送信されます。 A セッション切断イベント オブジェクトがイベントハンドラに渡されます。

sessionReconnected -- ローカルクライアントが一時的にネットワーク接続を失った後、OpenTokセッションに再接続した際に送信されます。

セッションの再接続中 -- ローカルクライアントが OpenTok セッションとの接続を失い、再接続を試みている際に送信されます。これはネットワーク接続の切断によって発生します。クライアントがセッションに再接続できた場合、 sessionReconnected メッセージが送信されます。それ以外の場合、クライアントが再接続できない場合は、 sessionDisconnected メッセージが送信される。

信号 -- セッションでシグナルを受信した際に送信されます。 A シグナルイベント オブジェクトがイベントハンドラに渡されます。

streamCreated -- このセッションで新しいストリームが作成されたときに送信されます。 A StreamCreatedEvent オブジェクトがイベントハンドラに渡されます。

streamDestroyed -- ストリームがセッションに配信されなくなった際に送信されます。 A StreamDestroyedEvent オブジェクトがイベントハンドラに渡されます。

streamPropertyChanged -- ストリームの音声または動画の配信が開始または停止された場合、あるいはストリームの動画サイズが変更された場合に送信されます。A StreamPropertyChangedイベント オブジェクト がイベントハンドラに渡されます。