Options
All
  • Public
  • Public/Protected
  • All
Menu

Inherited from LocalVideoTrack, CameraVideoTrack is an interface for the video captured by a local camera and adds functions such as switching devices and adjusting video encoder configurations.

You can create a local camera video track by calling [AgoraRTC.createCameraVideoTrack]{@link IAgoraRTC.createCameraVideoTrack}.

Hierarchy

Index

Properties

enabled

enabled: boolean

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.

muted

muted: boolean

trackMediaType

trackMediaType: "audio" | "video"

The type of a media track:

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

Methods

close

  • close(): void
  • 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

getCurrentFrameData

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

    Returns <internal>.ImageData

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

getListeners

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

    Parameters

    • event: string

      The event name.

    Returns Function[]

getMediaStreamTrack

getStats

getTrackId

  • getTrackId(): string
  • Gets the ID of a media track, a unique identifier generated by the SDK.

    Returns string

    The media track ID.

getTrackLabel

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

getVideoElementVisibleStatus

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: "beauty-effect-overload", listener: () => void): void
  • on(event: "track-ended", listener: () => void): void
  • on(event: "video-element-visible-status", listener: (data?: CheckVisibleResult) => void): void
  • Listens for a specified event.

    When the specified event happens, the SDK triggers the callback that you pass.

    Parameters

    • event: "beauty-effect-overload"
    • listener: () => void
        • (): void
        • Occurs when the device is overloaded after you call setBeautyEffect to enable image enhancement.

          You can listen for this event to notify users of the device overload and disable image enhancement.

          localVideoTrack.on("beauty-effect-overload", () => {
          console.log("beauty effect overload, disable beauty effect");
          localVideoTrack.setBeautyEffect(false);
          });
          asmemberof

          ILocalVideoTrack

          Returns void

    Returns void

  • Parameters

    • event: "track-ended"
    • listener: () => void
        • (): 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 track.
          • A local media device malfunctions.
          asmemberof

          ILocalTrack

          Returns void

    Returns void

  • Parameters

    Returns 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

play

  • Plays a local 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 the 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

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

setBeautyEffect

  • Enables/Disables image enhancement and sets the options.

    Notes:

    • This method supports the following browsers:
    • Safari 12 or later.
    • Chrome 65 or later.
    • Firefox 70.0.1 or later.
    • This function is not supported on mobile devices.
    • If you enable dual-stream mode, the image enhancement options only apply to the high-quality video stream.

    Parameters

    • enabled: boolean

      Whether to enable image enhancement:

      • true: Enable image enhancement.
      • false: Disable image enhancement.
    • Optional options: BeautyEffectOptions

      Sets image enhancement options. See BeautyEffectOptions.

    Returns Promise<void>

setDevice

  • setDevice(deviceId: string): Promise<void>
  • Sets the device for capturing video.

    You can call this method either before or after publishing the video track.

    Parameters

    • deviceId: string

      The ID of the specified device. You can get the deviceId by calling [AgoraRTC.getCameras]{@link IAgoraRTC.getCameras}.

    Returns Promise<void>

setEnabled

  • setEnabled(enabled: boolean): 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")]{@link event_track_ended} event.
    • If a track is published, disabling this track triggers the [user-unpublished]{@link IAgoraRTCClient.event_user_unpublished} event on the remote client, and re-enabling this track triggers the [user-published]{@link IAgoraRTCClient.event_user_published} event.

    Parameters

    • enabled: boolean

      Whether to enable the track:

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

    Returns Promise<void>

setEncoderConfiguration

  • setEncoderConfiguration(config: VideoEncoderConfiguration | "90p" | "90p_1" | "120p" | "120p_1" | "120p_3" | "120p_4" | "180p" | "180p_1" | "180p_3" | "180p_4" | "240p" | "240p_1" | "240p_3" | "240p_4" | "360p" | "360p_1" | "360p_3" | "360p_4" | "360p_6" | "360p_7" | "360p_8" | "360p_9" | "360p_10" | "360p_11" | "480p" | "480p_1" | "480p_2" | "480p_3" | "480p_4" | "480p_6" | "480p_8" | "480p_9" | "480p_10" | "720p" | "720p_1" | "720p_2" | "720p_3" | "720p_5" | "720p_6" | "1080p" | "1080p_1" | "1080p_2" | "1080p_3" | "1080p_5" | "1440p" | "1440p_1" | "1440p_2" | "4k" | "4k_1" | "4k_3"): Promise<void>
  • Sets the video encoder configurations, such as resolution, frame rate, and bitrate.

    Note: This method is not supported on mobile devices.

    Parameters

    • config: VideoEncoderConfiguration | "90p" | "90p_1" | "120p" | "120p_1" | "120p_3" | "120p_4" | "180p" | "180p_1" | "180p_3" | "180p_4" | "240p" | "240p_1" | "240p_3" | "240p_4" | "360p" | "360p_1" | "360p_3" | "360p_4" | "360p_6" | "360p_7" | "360p_8" | "360p_9" | "360p_10" | "360p_11" | "480p" | "480p_1" | "480p_2" | "480p_3" | "480p_4" | "480p_6" | "480p_8" | "480p_9" | "480p_10" | "720p" | "720p_1" | "720p_2" | "720p_3" | "720p_5" | "720p_6" | "1080p" | "1080p_1" | "1080p_2" | "1080p_3" | "1080p_5" | "1440p" | "1440p_1" | "1440p_2" | "4k" | "4k_1" | "4k_3"

      The video encoder configurations. You can pass either [[VideoEncoderConfigurationPreset]] or a customized VideoEncoderConfiguration object.

    Returns Promise<void>

setMuted

  • setMuted(muted: boolean): Promise<void>
  • Sends or stops sending the media data of the track.

    Since
       4.6.0

    Calling setMuted(true) does not stop capturing audio or video and takes shorter time to take effect than setEnabled. For details, see What are the differences between setEnabled and setMuted?.

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

    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>

setOptimizationMode

  • setOptimizationMode(mode: "balanced" | "motion" | "detail"): Promise<void>
  • Since
       4.2.0

    Sets the video transmission optimization mode.

    You can call this method during a video call, a live streaming or screen sharing to dynamically change the optimization mode. For example, during the screen sharing, before you change the shared content from text to video, you can change the optimization mode from "detail" to "motion" to ensure smoothness in poor network conditions.

    Note: This method supports Chrome only.

    Parameters

    • mode: "balanced" | "motion" | "detail"

      The video transmission optimization mode:

      • "balanced": Uses the default optimization mode.
        • For a screen-sharing video track, the default transmission optimization strategy is to prioritizes clarity.
        • For the other types of video tracks, the SDK may reduce the frame rate or the sending resolution in poor network conditions.
      • "detail": Prioritizes video quality.
        • The SDK ensures high-quality images by automatically calculating a minimum bitrate based on the capturing resolution and frame rate. No matter how poor the network condition is, the sending bitrate will never be lower than the minimum value.
        • In most cases, the SDK does not reduce the sending resolution, but may reduce the frame rate.
      • "motion": Prioritizes video smoothness.
      • In poor network conditions, the SDK reduces the sending bitrate to minimize video freezes.
      • In most cases, the SDK does not reduce the frame rate, but may reduce the sending resolution.

    Returns Promise<void>

stop

  • stop(): void
  • Stops playing the media track.

    Returns void

Generated using TypeDoc