Interface IRemoteAudioTrack

RemoteAudioTrack is the basic interface for the remote audio track.

You can get create a remote audio track by the [AgoraRTCRemoteUser.audioTrack]IAgoraRTCRemoteUser.audioTrack object after calling [subscribe]IAgoraRTCClient.subscribe.

interface IRemoteAudioTrack {
    isPlaying: boolean;
    processorDestination: IAudioProcessor;
    trackMediaType: "audio" | "video";
    getListeners(event): Function[];
    getMediaStreamTrack(): MediaStreamTrack;
    getRTCRtpTransceiver(type?): undefined | RTCRtpTransceiver;
    getStats(): RemoteAudioTrackStats;
    getTrackId(): string;
    getUserId(): UID;
    getVolumeLevel(): number;
    off(event, listener): void;
    on(event, listener): void;
    on(event, listener): void;
    on(event, listener): void;
    once(event, listener): void;
    pipe(processor): IAudioProcessor;
    play(): void;
    removeAllListeners(event?): void;
    setAudioFrameCallback(audioFrameCallback, frameSize?): void;
    setPlaybackDevice(deviceId): Promise<void>;
    setVolume(volume): void;
    stop(): void;
    unpipe(): void;
}

Hierarchy (view full)

Properties

isPlaying: boolean

Whether a media track is playing on the webpage:

  • true: The media track is playing on the webpage.
  • false: The media track is not playing on the webpage.
processorDestination: IAudioProcessor

Since


   4.13.0

The destination of the current processing pipeline on the remote audio track.

trackMediaType: "audio" | "video"

The type of a media track:

  • "audio": Audio track.
  • "video": Video track.

Methods

  • Gets all the listeners for a specified event.

    Parameters

    • event: string

      The event name.

    Returns Function[]

  • Gets the RTCRtpTransceiver instance of the current track.

    This method is currently mainly used for end-to-end encryption of video streams (Beta).

    If the SDK experiences a reconnection, the RTCRtpTransceiver instance corresponding to the current track might change. You can obtain the new RTCRtpTransceiver instance through the following callbacks:

    • For a local track: [ILocalTrack.transceiver-updated]event_transceiver_updated
    • For a remote track: [IRemoteTrack.transceiver-updated]event_transceiver_updated_2

    Parameters

    • Optional type: StreamType

      The type of the video stream. See StreamType.

    Returns undefined | RTCRtpTransceiver

    The RTCRtpTransceiver instance of the current track.

  • Gets the ID of a media track, a unique identifier generated by the SDK.

    Returns string

    The media track ID.

  • Gets the uid of the remote user who publishes the remote track.

    Returns UID

    The uid of the remote user.

  • Gets the audio level of a remote audio track.

    Returns number

    The audio level. The value range is [0,1]. 1 is the highest audio level. Usually a user with audio level above 0.6 is a speaking user.

  • Removes the listener for a specified event.

    Parameters

    • event: string

      The event name.

    • listener: Function

      The callback that corresponds to the event listener.

    Returns void

  • Parameters

    • event: "track-updated"

      The event name.

    • listener: ((track) => void)

      See [track-updated]event_track_updated.

        • (track): void
        • Triggers when a media track is updated.

          Parameters

          Returns void

          Group

          Events

    Returns void

  • Parameters

    • event: "first-frame-decoded"

      The event name.

    • listener: (() => void)

      See [first-frame-decoded]event_first_frame_decoded.

        • (): void
        • Occurs when the first remote audio or video frame is decoded.

          Returns void

          As Member Of

          IRemoteTrack

          Group

          Events

    Returns void

  • Adds an event listener.

    Parameters

    • event: "transceiver-updated"

      The event name.

    • listener: ((transceiver) => void)

      See [IRemoteTrack.transceiver-updated]event_transceiver_updated_2.

        • (transceiver): void
        • Occurs when the RTCRtpTransceiver instance of the current track is updated.

          Parameters

          • transceiver: RTCRtpTransceiver

            The new RTCRtpTransceiver instance.

          Returns void

          As Member Of

          IRemoteTrack

          Group

          Events

    Returns void

  • Listens for a specified event once.

    When the specified event happens, the SDK triggers the callback that you pass and then removes the listener.

    Parameters

    • event: string

      The event name.

    • listener: Function

      The callback to trigger.

    Returns void

  • Parameters

    • processor: IAudioProcessor

      The Processor instance. Each extension has a corresponding type of Processor.

    Returns IAudioProcessor

    The Processor instance.

    Since


       4.13.0

    Inserts a Processor to the remote audio track.

  • Plays a remote audio track.

    When playing the audio track, you do not need to pass any DOM element.

    Returns void

  • Removes all listeners for a specified event.

    Parameters

    • Optional event: string

      The event name. If left empty, all listeners for all events are removed.

    Returns void

  • Sets the callback for getting raw audio data in PCM format.

    After you successfully set the callback, the SDK constantly returns the audio frames of a remote audio track in this callback by using AudioBuffer.

    You can set the frameSize parameter to determine the frame size in each callback, which affects the interval between the callbacks. The larger the frame size, the longer the interval between them.

    track.setAudioFrameCallback((buffer) => {
    for (let channel = 0; channel < buffer.numberOfChannels; channel += 1) {
    // Float32Array with PCM data
    const currentChannelData = buffer.getChannelData(channel);
    console.log("PCM data in channel", channel, currentChannelData);
    }
    }, 2048);

    // ....
    // Stop getting the raw audio data
    track.setAudioFrameCallback(null);

    Parameters

    • audioFrameCallback: null | ((buffer) => void)

      The callback function for receiving the AudioBuffer object. If you set audioBufferCallback as null, the SDK stops getting raw audio data.

    • Optional frameSize: number

      The number of samples of each audio channel that an AudioBuffer object contains. You can set frameSize as 256, 512, 1024, 2048, 4096, 8192, or 16384. The default value is 4096.

    Returns void

  • Parameters

    • deviceId: string

      Device ID, which can be retrieved by calling [[getPlaybackDevices]].

    Returns Promise<void>

    Since


       4.1.0

    Sets the audio playback device, for example, the speaker.

    This method supports Chrome and Edge on desktop devices only. Other browsers throw a NOT_SUPPORTED error when calling this method.

  • Sets the volume of a remote audio track.

    Parameters

    • volume: number

      The volume. The value ranges from 0 (mute) to 100 (maximum). A value of 100 is the current volume.

    Returns void

  • Stops playing the media track.

    Returns void

  • Returns void

    Since


       4.13.0

    Removes the Processor inserted to the remote audio track.