Interface IRemoteAudioTrack

RemoteAudioTrack is the basic interface for the remote audio track.

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

Hierarchy

Index

Properties

isPlaying

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

processorDestination: IAudioProcessor
since


   4.13.0

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

trackMediaType

trackMediaType: "audio" | "video"

The type of a media track:

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

Methods

getListeners

  • getListeners(event: string): Function[]
  • Gets all the listeners for a specified event.

    Parameters

    • event: string

      The event name.

    Returns Function[]

getMediaStreamTrack

  • getMediaStreamTrack(): MediaStreamTrack

getRTCRtpTransceiver

  • getRTCRtpTransceiver(type?: StreamType): RTCRtpTransceiver | undefined

getStats

getTrackId

  • getTrackId(): string

getUserId

  • getUserId(): UID
  • Gets the uid of the remote user who publishes the remote track.

    Returns UID

    The uid of the remote user.

getVolumeLevel

  • getVolumeLevel(): number
  • 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.

off

  • off(event: string, listener: Function): void
  • 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

on

  • on(event: "first-frame-decoded", listener: typeof event_first_frame_decoded): void
  • on(event: "transceiver-updated", listener: typeof event_transceiver_updated_2): void

once

  • once(event: string, listener: Function): 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

pipe

  • pipe(processor: IAudioProcessor): IAudioProcessor
  • since


       4.13.0

    Inserts a Processor to the remote audio track.

    Parameters

    • processor: IAudioProcessor

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

    Returns IAudioProcessor

    The Processor instance.

play

  • play(): void
  • Plays a remote audio track.

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

    Returns void

removeAllListeners

  • removeAllListeners(event?: string): 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

setAudioFrameCallback

  • setAudioFrameCallback(audioFrameCallback: null | function, frameSize?: number): 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 | function

      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

setPlaybackDevice

  • setPlaybackDevice(deviceId: string): 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.

    Parameters

    Returns Promise<void>

setVolume

  • setVolume(volume: number): void
  • 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

stop

  • stop(): void

unpipe

  • unpipe(): void
  • since


       4.13.0

    Removes the Processor inserted to the remote audio track.

    Returns void