Class ConnectionBase

Sora との WebRTC 接続を扱う基底クラス

Param: signalingUrlCandidates

シグナリングに使用する URL の候補

Param: role

ロール

Param: channelId

チャネルID

Param: metadata

メタデータ

Param: options

コネクションオプション

Param: debug

デバッグフラグ

Hierarchy (view full)

Constructors

Properties

authMetadata: JSONType

type offer に含まれる認証 metadata

channelId: string

チャネルID

clientId: null | string

クライアントID

connectedSignalingUrl: string

WS シグナリングで type offer メッセージを受信したシグナリング URL

connectionId: null | string

コネクションID

constraints: any

PeerConnection に渡す configuration

contactSignalingUrl: string

WS シグナリングで最初に type connect を送信したシグナリング URL

debug: boolean

デバッグフラグ

encodings: RTCRtpEncodingParameters[]

サイマルキャストで使用する RTCRtpEncodingParameters のリスト

metadata: undefined | JSONType

メタデータ

接続オプション

pc: null | RTCPeerConnection

PeerConnection インスタンス

remoteConnectionIds: string[]

リモートコネクションIDのリスト

role: string

ロール(sendonly | sendrecv | recvonly)

sessionId: null | string

type offer に含まれるセッションID。Sora 2023.2.0 以降に接続した時に含まれる

signalingUrlCandidates: string | string[]

シグナリングに使用する URL 候補

stream: null | MediaStream

メディアストリーム

Accessors

  • get audio(): boolean
  • audio が有効かどうか

    Returns boolean

  • get e2eeRemoteFingerprints(): undefined | Record<string, string>
  • E2EE のリモートのフィンガープリントリスト

    Returns undefined | Record<string, string>

  • get e2eeSelfFingerprint(): undefined | string
  • E2EE の自分のフィンガープリント

    Returns undefined | string

  • get signalingUrl(): string | string[]
  • シグナリングに使用する URL

    Returns string | string[]

    Deprecated

  • get video(): boolean
  • video が有効かどうか

    Returns boolean

Methods

  • 切断処理をするメソッド

    Returns Promise<void>

    Example

    await sendrecv.disconnect();
    
  • SendRecv Object で発火するイベントのコールバックを設定するメソッド

    Type Parameters

    • T extends keyof Callbacks
    • U extends ((event) => void) | ((event, transportType) => void) | ((event) => void) | ((event) => void) | ((event) => void) | ((event) => void) | ((event, transportType) => void) | ((title, message) => void) | (() => void) | ((event) => void) | ((event) => void) | ((event) => void) | ((event) => void)

    Parameters

    • kind: T

      イベントの種類(disconnect, push, track, removetrack, notify, log, timeout, timeline, signaling, message, datachannel)

    • callback: U

      コールバック関数

    Returns void

    Example

    const sendrecv = connection.sendrecv("sora");
    sendrecv.on("track", (event) => {
    // callback 処理
    });

    Remarks

    addstream イベントは非推奨です. track イベントを使用してください

    removestream イベントは非推奨です. removetrack イベントを使用してください

  • audio track を削除するメソッド

    Parameters

    • stream: MediaStream

      audio track を削除する MediaStream

    Returns Promise<void>

    Example

    const sendrecv = connection.sendrecv("sora");
    const mediaStream = await navigator.mediaDevices.getUserMedia({audio: true, video: true});
    await sendrecv.connect(mediaStream);

    sendrecv.removeAudioTrack(mediaStream);

    Remarks

    stream の audio track を停止後、PeerConnection の senders から対象の sender を削除します

  • video track を削除するメソッド

    Parameters

    • stream: MediaStream

      video track を削除する MediaStream

    Returns Promise<void>

    Example

    const sendrecv = connection.sendrecv("sora");
    const mediaStream = await navigator.mediaDevices.getUserMedia({audio: true, video: true});
    await sendrecv.connect(mediaStream);

    sendrecv.removeVideoTrack(mediaStream);

    Remarks

    stream の video track を停止後、PeerConnection の senders から対象の sender を削除します

  • audio track を入れ替えするメソッド

    Parameters

    • stream: MediaStream

      audio track を削除する MediaStream

    • audioTrack: MediaStreamTrack

      新しい audio track

    Returns Promise<void>

    Example

    const sendrecv = connection.sendrecv("sora");
    const mediaStream = await navigator.mediaDevices.getUserMedia({audio: true, video: true});
    await sendrecv.connect(mediaStream);

    const replacedMediaStream = await navigator.mediaDevices.getUserMedia({audio: true});
    await sendrecv.replaceAudioTrack(mediaStream, replacedMediaStream.getAudioTracks()[0]);

    Remarks

    stream の audio track を停止後、新しい audio track をセットします

  • video track を入れ替えするメソッド

    Parameters

    • stream: MediaStream

      video track を削除する MediaStream

    • videoTrack: MediaStreamTrack

      新しい video track

    Returns Promise<void>

    Example

    const sendrecv = connection.sendrecv("sora");
    const mediaStream = await navigator.mediaDevices.getUserMedia({audio: true, video: true});
    await sendrecv.connect(mediaStream);

    const replacedMediaStream = await navigator.mediaDevices.getUserMedia({video: true});
    await sendrecv.replaceVideoTrack(mediaStream, replacedMediaStream.getVideoTracks()[0]);

    Remarks

    stream の video track を停止後、新しい video track をセットします

  • DataChannel を使用してメッセージを送信するメソッド

    Parameters

    • label: string

      メッセージを送信する DataChannel のラベル

    • message: Uint8Array

      Uint8Array

    Returns void

  • audio track を削除するメソッド

    Parameters

    • stream: MediaStream

      audio track を削除する MediaStream

    Returns Promise<void>

    Deprecated

    この関数は非推奨です。代わりに removeAudioTrack を使用してください

    Example

    const sendrecv = connection.sendrecv("sora");
    const mediaStream = await navigator.mediaDevices.getUserMedia({audio: true, video: true});
    await sendrecv.connect(mediaStream);

    sendrecv.stopAudioTrack(mediaStream);

    Remarks

    stream の audio track を停止後、PeerConnection の senders から対象の sender を削除します

  • video track を削除するメソッド

    Parameters

    • stream: MediaStream

      video track を停止する MediaStream

    Returns Promise<void>

    Deprecated

    この関数は非推奨です。代わりに removeVideoTrack を使用してください

    Example

    const sendrecv = connection.sendrecv("sora");
    const mediaStream = await navigator.mediaDevices.getUserMedia({audio: true, video: true});
    await sendrecv.connect(mediaStream);

    sendrecv.stopVideoTrack(mediaStream);

    Remarks

    stream の video track を停止後、PeerConnection の senders から対象の sender を削除します