Interface ILocalTrack

LocalTrack is the basic interface for local tracks, providing public methods for [LocalAudioTrack]ILocalAudioTrack and [LocalVideoTrack]ILocalVideoTrack.

interface ILocalTrack {
    enabled: boolean;
    isPlaying: boolean;
    muted: boolean;
    trackMediaType: "audio" | "video";
    close(): void;
    getListeners(event): Function[];
    getMediaStreamTrack(): MediaStreamTrack;
    getRTCRtpTransceiver(type?): undefined | RTCRtpTransceiver;
    getStats(): LocalVideoTrackStats | LocalAudioTrackStats;
    getTrackId(): string;
    getTrackLabel(): string;
    off(event, listener): void;
    on(event, listener): void;
    on(event, listener): void;
    on(event, listener): void;
    once(event, listener): void;
    play(element?): void;
    removeAllListeners(event?): void;
    setEnabled(enabled): Promise<void>;
    setMuted(muted): Promise<void>;
    stop(): void;
}

Hierarchy (view full)

Properties

enabled: boolean
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.
muted: boolean
trackMediaType: "audio" | "video"

The type of a media track:

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

Methods

  • Closes a local track and releases the audio and video resources that it occupies.

    Once you close a local track, you can no longer reuse it.

    Returns void

  • 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 label of a local track.

    Returns string

    The label that the SDK returns may include:

    • The MediaDeviceInfo.label property, if the track is created by calling createMicrophoneAudioTrack or createCameraVideoTrack.
    • The sourceId property, if the track is created by calling createScreenVideoTrack.
    • The MediaStreamTrack.label property, if the track is created by calling createCustomAudioTrack or createCustomVideoTrack.
  • 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: "track-ended"

      The event name.

    • listener: (() => void)

      See [track-ended]event_track_ended.

        • (): void
        • Occurs when a audio or video track ends.

          Reasons may include:

          • Camera is unplugged.
          • Microphone is unplugged.
          • The local user stops screen sharing.
          • The local user closes the underlying MediaStreamTrack.
          • A local media device malfunctions.
          • The device permission is revoked.

          Returns void

          As Member Of

          ILocalTrack

          Group

          Events

    Returns void

  • Adds an event listener.

    Parameters

    • event: "transceiver-updated"

      The event name.

    • listener: ((transceiver, type?) => void)

      See [ILocalTrack.transceiver-updated]event_transceiver_updated.

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

          Parameters

          • transceiver: RTCRtpTransceiver

            The new RTCRtpTransceiver instance.

          • Optional type: StreamType

            The type of the video stream to which the current track belongs. See StreamType.

          Returns void

          As Member Of

          ILocalTrack

          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

  • Plays a media track on the webpage.

    Parameters

    • Optional element: string | HTMLElement

      Specifies a DOM element. The SDK will create a <video> element under the specified DOM element to play the video track. You can specify a DOM element in either of following ways:

      • string: Specify the ID of the DOM element.
      • HTMLElement: Pass a DOM object.

    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

  • Parameters

    • enabled: boolean

      Whether to enable the track:

      • true: Enable the track.
      • false: Disable the track.

    Returns Promise<void>

    Since


       4.0.0

    Enables/Disables the track.

    After a track is disabled, the SDK stops playing and publishing the track.

    • Disabling a track does not trigger the [LocalTrack.on("track-ended")]event_track_ended event.
    • If a track is published, disabling this track triggers the [user-unpublished]IAgoraRTCClient.event_user_unpublished event on the remote client, and re-enabling this track triggers the [user-published]IAgoraRTCClient.event_user_published event.
    • Do not call setEnabled and setMuted together.
  • Sends or stops sending the media data of the track.

    Parameters

    • muted: boolean

      Whether to stop sending the media data of the track:

      • true: Stop sending the media data of the track.
      • false: Resume sending the media data of the track.

    Returns Promise<void>

    Since


       4.6.0

    If the track is published, a successful call of setMuted(true) triggers the [user-unpublished]IAgoraRTCClient.event_user_unpublished event on the remote client, and a successful call of setMuted(false) triggers the [user-published]IAgoraRTCClient.event_user_published event.

  • Stops playing the media track.

    Returns void