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.
4.10.0
The destination of the current processing pipeline on the local video track.
The type of a media track:
"audio"
: Audio track."video"
: Video track.Optional
config: string | VideoEncoderConfigurationThe encoding configuration for the new video track. You can pass in the SDK's built-in encoding configuration through [[VideoEncoderConfiguration]], or customize the video encoding configuration by passing in a [[VideoEncoderConfigurationPreset]].
Optional
cloneTrack: booleanWhether to clone the current track. Default is true
.
The newly generated video track.
4.19.0
Clones the current video track to create a new video track.
In scenarios such as video conferencing and online education, you can use this method to display the same video stream with two sets of display parameters, including resolution, frame rate, and bitrate. For example, you can have one display set to high-definition and the other to low-definition.
An ImageData
object that stores RGBA data. ImageData
is a web API supported by the browser. For details, see ImageData.
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 an MediaStreamTrack object.
An MediaStreamTrack object.
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 newRTCRtpTransceiver
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
Optional
type: StreamTypeThe type of the video stream. See StreamType.
The RTCRtpTransceiver instance of the current track.
Gets the statistics of a local video track.
from v4.1.0. Use [AgoraRTCClient.getLocalVideoStats]IAgoraRTCClient.getLocalVideoStats and [AgoraRTCClient.getLocalAudioStats]IAgoraRTCClient.getLocalAudioStats instead.
Gets the label of a local track.
The label that the SDK returns may include:
createMicrophoneAudioTrack
or createCameraVideoTrack
.sourceId
property, if the track is created by calling createScreenVideoTrack
.createCustomAudioTrack
or createCustomVideoTrack
.The [[CheckVideoVisibleResult]] object. If this method returns undefined
, it may be due to the following reasons:
localVideoTrack.isPlaying
is false
.<video>
tag does not exist.<video>
tag is not created by calling the play
method.
4.8.0
Gets the visibility of the <video>
HTML tag.
After you call localVideoTrack.play
, the SDK creates an <video>
tag for playing video tracks. When localVideoTrack.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.
The event name.
See [track-updated]event_track_updated.
Triggers when a media track is updated.
The media stream track. See MediaStreamTrack.
Events
The event name.
See [track-ended]event_track_ended.
Occurs when a audio or video track ends.
Reasons may include:
MediaStreamTrack
.ILocalTrack
Events
The event name.
See [video-element-visible-status]event_video_element_visible_status.
Optional
data: CheckVisibleResultThe visibility of the <video>
tag.
Adds an event listener.
The event name.
See [ILocalTrack.transceiver-updated]event_transceiver_updated.
Occurs when the RTCRtpTransceiver
instance of the current track is updated.
The new RTCRtpTransceiver
instance.
Optional
type: StreamTypeThe type of the video stream to which the current track belongs. See StreamType.
ILocalTrack
Events
Plays a remote video track on the web page.
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: VideoPlayerConfigSets the playback configurations, such as display mode and mirror mode. See [[VideoPlayerConfig]]. By default, the SDK enables mirror mode for a local video track.
The new video track, which is a MediaStreamTrack object.
Whether to stop the old video track:
4.17.0
Replaces the local video track.
You can call this method before or after publishing the local video stream:
The new video track can be retrieved by the ILocalVideoTrack.getMediaStreamTrack or mediaStream.getVideoTracks
method. You can choose to either stop or retain the replaced track.
Notes:
- This method supports Chrome 65+, Safari, and the latest Firefox.
- This method might not take effect on some mobile devices.
- Agora recommends switching between video tracks that are of the same type and have the same encoder configurations for the following reasons:
- If the video track types are different, such as replacing a
CameraVideoTrack
object with aScreenVideoTrack
object, the video is flipped horizontally due to the mirror effect enabled by default onCameraVideoTrack
(see VideoPlayerConfig.mirror for details).- If the encoder configurations (
encoderConfig
) are different, the actual sending resolution or frame rate might be different from what you set.- The subscriber will not be notified if the track gets replaced.
- To switch the media input devices, Agora recommends using ICameraVideoTrack.setDevice.
Example
// Current video track
const localVideoTrack = await AgoraRTC.createCameraVideoTrack();
// Gets the new video track (option one)
const newTrack = localVideoTrack.getMediaStreamTrack();
// Gets the new video track (option two)
const newTrack = await navigator.mediaDevices.getUserMedia({audio: true, video: true}).then(mediaStream => mediaStream.getVideoTracks()[0]);
// Replaces and stops the current video track
await localVideoTrack.replaceTrack(newTrack, true);
Sets the device for capturing video.
You can call this method either before or after publishing the video track.
Device ID, which can be passed in using the following ways:
deviceId
obtained using [AgoraRTC.getCameras]IAgoraRTC.getCameras.facingMode
or deviceId
, but only one of these properties
can be specified. deviceId
can be obtained through [AgoraRTC.getCameras]IAgoraRTC.getCameras, and facingMode
supports the following values:"environment"
: Use the rear camera."user"
: Use the front camera.Whether to enable the track:
true
: Enable the track.false
: Disable the track.
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
andsetMuted
together.
Sets the video encoder configurations, such as resolution, frame rate, and bitrate.
The video encoder configurations. You can pass either [[VideoEncoderConfigurationPreset]] or a customized [[VideoEncoderConfiguration]] object.
Sends or stops sending the media data of the track.
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.
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.
- 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?.- Do not call
setEnabled
andsetMuted
together.
The video transmission optimization mode:
"balanced"
: Uses the default optimization mode."detail"
: Prioritizes video quality."motion"
: Since 4.21.0, the SDK prioritizes video smoothness.
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.
Inherited from [LocalVideoTrack]ILocalVideoTrack,
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]IAgoraRTC.createCameraVideoTrack.