sora-js-sdk
    Preparing search index...

    Interface ConnectionPublisher

    Role が "sendonly" または "sendrecv" の場合に Sora との WebRTC 接続を扱うクラス

    interface ConnectionPublisher {
        authMetadata: JSONType;
        bundleId: string | null;
        channelId: string;
        clientId: string | null;
        connectedSignalingUrl: string;
        connectionId: string | null;
        constraints: unknown;
        contactSignalingUrl: string;
        debug: boolean;
        encodings: RTCRtpEncodingParameters[];
        metadata: JSONType | undefined;
        options: ConnectionOptions;
        pc: RTCPeerConnection | null;
        remoteConnectionIds: string[];
        role: string;
        rpcMethods: string[];
        sessionId: string | null;
        signalingUrlCandidates: string | string[];
        simulcast: boolean;
        spotlight: boolean;
        stream: MediaStream | null;
        get audio(): boolean;
        get datachannels(): DataChannelConfiguration[];
        get signalingUrl(): string | string[];
        get video(): boolean;
        connect(stream: MediaStream): Promise<MediaStream>;
        disconnect(): Promise<void>;
        on<
            T extends keyof Callbacks,
            U extends
            
                    | ((event: SoraCloseEvent) => void)
                    | ((event: SignalingPushMessage, transportType: TransportType) => void)
                    | ((event: RTCTrackEvent) => void)
                    | ((event: MediaStreamTrackEvent) => void)
                    | (
                        (
                            event: SignalingNotifyMessage,
                            transportType: TransportType,
                        ) => void
                    )
                    | ((event: SignalingSwitchedMessage) => void)
                    | ((event: SignalingNotifyConnectionCreated) => void)
                    | ((title: string, message: JSONType) => void)
                    | (() => void)
                    | ((event: TimelineEvent) => void)
                    | ((event: SignalingEvent) => void)
                    | ((event: DataChannelMessageEvent) => void)
                    | ((event: DataChannelEvent) => void),
        >(
            kind: T,
            callback: U,
        ): void;
        removeAudioTrack(stream: MediaStream): Promise<void>;
        removeVideoTrack(stream: MediaStream): Promise<void>;
        replaceAudioTrack(
            stream: MediaStream,
            audioTrack: MediaStreamTrack,
        ): Promise<void>;
        replaceVideoTrack(
            stream: MediaStream,
            videoTrack: MediaStreamTrack,
        ): Promise<void>;
        rpc<T = unknown>(
            method: string,
            params?: unknown[] | Record<string, unknown>,
            options?: RPCOptions,
        ): Promise<T>;
        sendMessage(label: string, message: Uint8Array): Promise<void>;
        stopAudioTrack(stream: MediaStream): Promise<void>;
        stopVideoTrack(stream: MediaStream): Promise<void>;
    }

    Hierarchy (View Summary)

    Index

    Properties

    authMetadata: JSONType

    type offer に含まれる認証 metadata

    bundleId: string | null

    バンドルID

    channelId: string

    チャネルID

    clientId: string | null

    クライアントID

    connectedSignalingUrl: string

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

    connectionId: string | null

    コネクションID

    constraints: unknown

    PeerConnection に渡す configuration

    contactSignalingUrl: string

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

    debug: boolean

    デバッグフラグ

    encodings: RTCRtpEncodingParameters[]

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

    metadata: JSONType | undefined

    メタデータ

    接続オプション

    pc: RTCPeerConnection | null

    PeerConnection インスタンス

    remoteConnectionIds: string[]

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

    role: string

    ロール(sendonly | sendrecv | recvonly)

    rpcMethods: string[]

    type offer に含まれる RPC メソッドのリスト

    sessionId: string | null

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

    signalingUrlCandidates: string | string[]

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

    simulcast: boolean

    サイマルキャスト

    spotlight: boolean

    スポットライト

    stream: MediaStream | null

    メディアストリーム

    Accessors

    • get audio(): boolean

      audio が有効かどうか

      Returns boolean

    • get signalingUrl(): string | string[]

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

      Returns string | string[]

    • get video(): boolean

      video が有効かどうか

      Returns boolean

    Methods

    • Sora へ接続するメソッド

      Parameters

      • stream: MediaStream

        メディアストリーム

      Returns Promise<MediaStream>

      const sendrecv = connection.sendrecv("sora");
      const mediaStream = await navigator.mediaDevices.getUserMedia({audio: true, video: true});
      await sendrecv.connect(mediaStream);
    • 切断処理をするメソッド

      Returns Promise<void>

      await sendrecv.disconnect();
      
    • audio track を削除するメソッド

      Parameters

      • stream: MediaStream

        audio track を削除する MediaStream

      Returns Promise<void>

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

      sendrecv.removeAudioTrack(mediaStream);

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

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

      Parameters

      • stream: MediaStream

        video track を削除する MediaStream

      Returns Promise<void>

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

      sendrecv.removeVideoTrack(mediaStream);

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

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

      Parameters

      • stream: MediaStream

        audio track を削除する MediaStream

      • audioTrack: MediaStreamTrack

        新しい audio track

      Returns Promise<void>

      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]);

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

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

      Parameters

      • stream: MediaStream

        video track を削除する MediaStream

      • videoTrack: MediaStreamTrack

        新しい video track

      Returns Promise<void>

      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]);

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

    • RPC DataChannel でリクエストを送信するメソッド

      Type Parameters

      • T = unknown

      Parameters

      • method: string

        RPC メソッド名

      • Optionalparams: unknown[] | Record<string, unknown>

        RPC パラメーター

      • Optionaloptions: RPCOptions

        RPC オプション

      Returns Promise<T>

      Promise - レスポンスの result

      const result = await connection.rpc('simulcast.change_sending_encodings', { rids: ['r0', 'r1'] });
      
    • DataChannel を使用してメッセージを送信するメソッド

      Parameters

      • label: string

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

      • message: Uint8Array

        Uint8Array

      Returns Promise<void>

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

      Parameters

      • stream: MediaStream

        audio track を削除する MediaStream

      Returns Promise<void>

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

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

      sendrecv.stopAudioTrack(mediaStream);

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

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

      Parameters

      • stream: MediaStream

        video track を停止する MediaStream

      Returns Promise<void>

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

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

      sendrecv.stopVideoTrack(mediaStream);

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