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

  • 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

  • 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