Custom Stream Track
A custom audio or video track created by a VideoSDK factory method.
A camera or microphone track opens its device when it is created, so it can be previewed before join: track is what VideoView renders. Passing it to createRoom, Room.enableCam, Room.unmuteMic, Room.changeCam or Room.changeMic publishes the open device without reopening it; from then on the room owns it and its disable or leave releases it. stop releases a track the room has not taken.
Instances come only from the factory methods, never from application code.
Properties
How the encoder trades quality against bitrate.
Camera device id, or null when the camera is chosen by facingMode.
Codec requested for this camera track, or null for the SDK's default (VP8). Read VideoCodec before choosing one — anything else costs simulcast.
Encoder profile this track was created with — a camera profile such as "h720p_w1280p", a screen-share one such as "h720p_15fps", or a microphone one.
The camera that was actually opened.
How many simulcast layers the camera publishes, or null when the track carries no layer preference (audio and screen-share tracks).
Microphone this audio track captures from (a VideoSDK.getMics device id), or null for the current one.
Whether the camera publishes a simulcast ladder. A non-VP8 codec overrides this to a single layer whatever it says.
Audio-processing flags, or null to keep the encoder profile's own.
Called once, on the main thread, when this track ends; null removes it. The factory already threw if the device would not open, so this reports what happens afterwards: the device failing, with why (3023 / 3026 / 3024 …), or null when the track was stopped, disabled, replaced or released by leaving the room. Set after the track ended, it is called at once and not kept.
The underlying media track: a VideoTrack for a camera track, which VideoView.addTrack renders as the local preview, or an AudioTrack for a microphone track. null for a screen-share track. Disposing it releases the device, as stop does.
Whether a screen-share track also captures system audio, mixed into the microphone track. Set by VideoSDK.createScreenShareVideoTrack; ignored by camera and microphone tracks.