OptionalaudioWhether participant is audio-only mode (no camera available)
Audio MediaStream from the participant (null if audio is off)
OptionalcolorsCustom colors for theming
OptionalcontrolPosition of control buttons (zoom)
OptionalcontrolsHow the tile's control buttons (zoom / fit) are presented.
'icons' (default) keeps each control as its own IconButton
in the controls overlay — current behavior.'menu' collapses every visible control into a single
overflow IconButton. Clicking it opens a menu listing the
same actions, with the same labels/icons. Useful on tight
layouts (small tiles, mobile) where the icon row would crowd
the overlay. Status indicators (mute, hand-raise) are not
affected — they remain inline.OptionalengagementPosition of the engagement indicator
OptionaliconsCustom icons to replace defaults
OptionalisHighlight tile as dominant/active speaker with border
OptionalisCurrent audio/video mute status
OptionalisWhether participant has hand raised
OptionallabelPosition of the name label overlay
OptionallabelsCustom labels for internationalization support
OptionalmoodCurrent mood data from mood analysis (when mood analysis is active)
OptionalmoodPosition of the mood indicator
OptionalonFires whenever the underlying <video> element's intrinsic
dimensions change — on stream attach, when the encoder
negotiates a new resolution, and when a mobile participant
rotates their device. Receives videoWidth / videoHeight. Used
by VideoGrid to size sidebar / overlay / filmstrip slots so a
portrait stream doesn't get cropped into a landscape tile.
OptionalonClick handler for the tile
OptionalonCallback when an error occurs during video rendering or stream attachment
OptionalonCalled when the mute-audio menu item is clicked. The label /
icon flip based on isMuted.audio, so the consumer should
implement this as a toggle (e.g., remoteMuteAudio(userId, !muted)).
Required when showMuteAudio is on.
OptionalonCalled when the mute-video menu item is clicked. Toggle semantics
— see onMuteAudio. Required when showMuteVideo is on.
OptionaloverlayRender order for overlay elements when they share the same position. Elements listed first appear first (leftmost for horizontal layouts).
OptionalrenderRender props for advanced customization
OptionalshowWhether to show engagement indicator (colored dot)
OptionalshowShow fit/fill toggle button
OptionalshowWhether to show mood indicator
OptionalshowShow the "Mute / Unmute audio" menu item for this remote
participant. Requires onMuteAudio. Intended for room owners
(teachers) — the SDK does not gate visibility itself; the
consumer decides whether to pass the prop.
OptionalshowShow mute status indicators (mic off, camera off icons)
OptionalshowShow the "Mute / Unmute video" menu item for this remote
participant. Requires onMuteVideo. Intended for room owners.
OptionalshowShow participant name overlay
OptionalshowShow fullscreen/zoom button
OptionalstatusPosition of status indicators (mute icons, hand raised)
OptionalstylesCustom style values
OptionalsxMUI sx styling prop for additional customization
Unique identifier for the participant
OptionaluserDisplay name for the participant
Video MediaStream from the participant (null if video is off)
Props for the VideoTile component. Displays a remote participant's video stream with status indicators.
Example