Interface IRemoteVideoTrack

RemoteVideoTrack is the basic interface for the remote video track.

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

interface IRemoteVideoTrack {
    isPlaying: boolean;
    processorDestination: IBaseProcessor;
    trackMediaType: "audio" | "video";
    getCurrentFrameData(): ImageData;
    getListeners(event): Function[];
    getMediaStreamTrack(): MediaStreamTrack;
    getRTCRtpTransceiver(type?): undefined | RTCRtpTransceiver;
    getStats(): RemoteVideoTrackStats;
    getTrackId(): string;
    getUserId(): UID;
    getVideoElementVisibleStatus(): undefined | CheckVisibleResult;
    off(event, listener): void;
    on(event, listener): void;
    on(event, listener): void;
    on(event, listener): void;
    on(event, listener): void;
    on(event, listener): void;
    on(event, listener): void;
    once(event, listener): void;
    pipe(processor): IBaseProcessor;
    play(element, config?): void;
    removeAllListeners(event?): 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: IBaseProcessor

Since


   4.13.0

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

trackMediaType: "audio" | "video"

The type of a media track:

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

Methods

  • Returns ImageData

    An ImageData object that stores RGBA data. ImageData is a web API supported by the browser. For details, see ImageData.

    Since


       4.1.0

    Gets the data of the video frame being rendered.

    You should call this method after calling [[play]]. Otherwise, the method call returns null.

  • 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.

  • Returns undefined | CheckVisibleResult

    The [[CheckVideoVisibleResult]] object. If this method returns undefined, it may be due to the following reasons:

    • remoteVideoTrack.isPlaying is false.
    • The <video> tag does not exist.
    • The <video> tag is not created by calling the play method.

    Since


       4.8.0

    Gets the visibility of the <video> HTML tag.

    After you call remoteVideoTrack.play, the SDK creates an <video> tag for playing video tracks. When remoteVideoTrack.isPlaying is true but you cannot see any video, call this method to check whether the <video> tag is visible or not and learn the reason when the <video> tag is invisible.

  • 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: "video-state-changed"

      The event name.

    • listener: ((videoState) => void)

      See [video-state-changed]event_video_state_changed.

        • (videoState): void
        • Occurs when the video state changes.

          Parameters

          Returns void

          As Member Of

          IRemoteTrack

          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

  • Parameters

    • event: "video-element-visible-status"

      The event name.

    • listener: ((data?) => void)

      See [video-element-visible-status]event_video_element_visible_status_2.

        • (data?): void
        • Parameters

          • Optional data: CheckVisibleResult

            The visibility of the <video> tag.

          Returns void

    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

  • Adds an event listener.

    Parameters

    • event: "sei-received"

      The event name.

    • listener: ((sei) => void)

      See [ILocalTrack.sei-received]event_sei_received.

        • (sei): void
        • Parameters

          • sei: Uint8Array

            SEI data in Uint8Array

          Returns void

    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: IBaseProcessor

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

    Returns IBaseProcessor

    The Processor instance.

    Since


       4.13.0

    Inserts a Processor to the remote video track.

  • Plays a remote video track on the web page.

    Parameters

    • 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.
    • Optional config: VideoPlayerConfig

      Sets the playback configurations, such as display mode and mirror mode. See [[VideoPlayerConfig]]. By default, the SDK enables mirror mode for a local video track.

    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

  • Stops playing the media track.

    Returns void

  • Returns void

    Since


       4.13.0

    Removes the Processor inserted to the remote video track.