Interface TransceiverController

[[TransceiverController]] provides an interface for managing transceivers associated with peer connection.

interface TransceiverController {
    addRedundantAudioRecoveryMetricsObserver(
        observer: RedundantAudioRecoveryMetricsObserver,
    ): void;
    getMidForGroupId(groupId: number): string;
    getMidForStreamId(streamId: number): string;
    hasVideoInput(): boolean;
    localAudioTransceiver(): RTCRtpTransceiver;
    localVideoTransceiver(): RTCRtpTransceiver;
    removeRedundantAudioRecoveryMetricsObserver(
        observer: RedundantAudioRecoveryMetricsObserver,
    ): void;
    replaceAudioTrack(track: MediaStreamTrack): Promise<boolean>;
    reset(): void;
    setAudioInput(track: MediaStreamTrack): Promise<void>;
    setAudioPayloadTypes(payloadType: Map<string, number>): void;
    setEncodingParameters(params: Map<string, RTCRtpEncodingParameters>): void;
    setPeer(peer: RTCPeerConnection): void;
    setStreamIdForMid(mid: string, streamId: number): void;
    setupLocalTransceivers(): void;
    setVideoInput(track: MediaStreamTrack): Promise<void>;
    setVideoSendingBitrateKbps(bitrateKbps: number): void;
    trackIsVideoInput(track: MediaStreamTrack): boolean;
    updateVideoTransceivers(
        videoStreamIndex: VideoStreamIndex,
        videosToReceive: VideoStreamIdSet,
    ): number[];
    useTransceivers(): boolean;
}

Implemented by

Methods

  • Returns void

    This method is deprecated and should not be used. Access the encodedTransformWorkerManager directly via the meeting session context instead.

  • Get the associated MID for a given group ID, set during updateVideoTransceivers

    Parameters

    • groupId: number

    Returns string

  • Get the associated MID for a given stream ID, either set via updateVideoTransceivers or overriden through setStreamIdForMid.

    Note: According to https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpTransceiver/mid mid may not exist yet even if the transceiver has been created: "This association is established, when possible, whenever either a local or remote description is applied. This field is null if neither a local or remote description has been applied, or if its associated m-line is rejected by either a remote offer or any answer."

    Parameters

    • streamId: number

    Returns string

  • Indicates if there is a video input attached

    Returns boolean

  • Returns the [[RTCRtpTransceiver]] for audio

    Returns RTCRtpTransceiver

  • Returns the [[RTCRtpTransceiver]] for local camera

    Returns RTCRtpTransceiver

  • Returns void

    This method is deprecated and should not be used. Access the encodedTransformWorkerManager directly via the meeting session context instead.

  • Replaces [[MediaStreamTrack]] on audio transceiver of sendrecv direction.

    Parameters

    • track: MediaStreamTrack

    Returns Promise<boolean>

  • Resets the transceiver controller states.

    Returns void

  • Sets the audio track.

    Parameters

    • track: MediaStreamTrack

    Returns Promise<void>

  • Parameters

    • payloadType: Map<string, number>

    Returns void

    This method is deprecated and should not be used. Access the encodedTransformWorkerManager directly via the meeting session context instead.

  • Set [[RTCRtpEncodingParameters]] on the sender of transceiver. This method should be called whenever the sender's encoding parameters of the local video transceiver need to be updated. For example, the default NScaleVideoUplinkBandwidthPolicy calls this method whenever a video is on/off or the active speaker changes. This method assumes that the sender of the local video transceiver is available and the input parameters should not be empty. The encoding parameters for sender should be retrieved using sender.getParameters and updated using sender.setParameters method.

    Parameters

    • params: Map<string, RTCRtpEncodingParameters>

      The encoding parameters. If you have multiple encoding parameters for different video layers, the key should be the rid corresponding to the RTCRtpEncodingParameters.

    Returns void

  • Sets the peer connection.

    Parameters

    • peer: RTCPeerConnection

    Returns void

  • Override or set an internal mapping of stream ID to MID.

    Parameters

    • mid: string
    • streamId: number

    Returns void

  • Creates audio and video transceivers.

    Returns void

  • Sets the video track.

    Parameters

    • track: MediaStreamTrack

    Returns Promise<void>

  • Sets video sending bitrate in Kilo-bit-per-second

    Parameters

    • bitrateKbps: number

    Returns void

  • Returns whether the track is a video track.

    Parameters

    • track: MediaStreamTrack

    Returns boolean

  • Indicates whether the transceiver is used.

    Returns boolean