Play video in a native surface. Use it for trailers, lessons and media feeds.

Play a streamed trailer with native controls

tsx
import { Video } from 'kuito';

export default function Trailer() {
  return (
    <Video
      src={{ uri: 'https://example.com/trailer/master.m3u8' }}
      height={220}
      controls
      onError={(event) => console.log(event.code, event.message)}
    />
  );
}

Behavior

Set a bounded size and handle onError. controls adds native playback controls. Use videoRef for play, pause and seek commands. Sources and playback features depend on the platform media implementation.

Continue

Read Audio for a complete workflow. See the complete prop reference for types and documented defaults.

Référence

Signatures

ts
(props: NativeViewProps<VideoViewProps, VideoMethods>): KuitoElement

Paramètres

NomTypeRequisDescription
propsNativeViewProps<VideoViewProps, VideoMethods>Oui—

Retourne

KuitoElement

Props: NativeViewProps<VideoViewProps, VideoMethods>

Props (props héritées incluses) 100

NomTypeRequisDescription
opacityAnimatable<number>Non—
backgroundColorAnimatable<string>Non—
borderRadiusAnimatable<number>Non—
borderColorAnimatable<string>Non—
widthAnimatable<SizeValue>Non—
heightAnimatable<SizeValue>Non—
translateXAnimatable<number>Non—
translateYAnimatable<number>Non—
scaleAnimatable<number>Non—
scaleXAnimatable<number>Non—
scaleYAnimatable<number>Non—
rotateAnimatable<number>NonDegrees.
shadowColorAnimatable<string>Non—
shadowRadiusAnimatable<number>Non—
shadowOffsetXAnimatable<number>Non—
shadowOffsetYAnimatable<number>Non—
hiddenProp<boolean>NonTakes the view out of layout and off screen, as CSS display: none.
paddingProp<LengthPercentage>Non—
positionProp<"relative" | "absolute">Non—
idstringNon—
classProp<ClassNames>NonClass names from a .css import or styles(): a string, or a list with falsy entries skipped, following the signals it reads.
styleStyleDeclarationsNonStyles of this view alone, compiled at build time: CSS properties in camelCase. A value that changes must set a native prop (opacity).
keystring | numberNon—
paddingTopProp<LengthPercentage>Non—
paddingRightProp<LengthPercentage>Non—
paddingBottomProp<LengthPercentage>Non—
paddingLeftProp<LengthPercentage>Non—
minWidthProp<SizeValue>Non—
maxWidthProp<SizeValue>Non—
minHeightProp<SizeValue>Non—
maxHeightProp<SizeValue>Non—
aspectRatioProp<number>NonWidth divided by height; sizes the missing side from the other.
topProp<LengthPercentageAuto>Non—
rightProp<LengthPercentageAuto>Non—
bottomProp<LengthPercentageAuto>Non—
leftProp<LengthPercentageAuto>Non—
marginProp<LengthPercentageAuto>Non—
marginTopProp<LengthPercentageAuto>Non—
marginRightProp<LengthPercentageAuto>Non—
marginBottomProp<LengthPercentageAuto>Non—
marginLeftProp<LengthPercentageAuto>Non—
flexGrowProp<number>Non—
flexShrinkProp<number>Non—
flexBasisProp<SizeValue | "content">Non—
flexProp<number>NonA grow factor from a zero basis, as CSS flex: n; 0 is inflexible.
alignSelfProp<"auto" | SelfAlignment>Non—
directionProp<"ltr" | "rtl">NonThe way lines run; unset, the parent's, and the app's first language's at the root.
boxSizingProp<"border-box" | "content-box">Non—
paddingInlineStartProp<LengthPercentage>NonPadding on the side lines start from: the left in ltr, the right in rtl.
paddingInlineEndProp<LengthPercentage>NonPadding on the side lines end at: the right in ltr, the left in rtl.
marginInlineStartProp<LengthPercentageAuto>NonMargin on the side lines start from: the left in ltr, the right in rtl.
marginInlineEndProp<LengthPercentageAuto>NonMargin on the side lines end at: the right in ltr, the left in rtl.
insetInlineStartProp<LengthPercentageAuto>Nonleft in ltr, right in rtl.
insetInlineEndProp<LengthPercentageAuto>Nonright in ltr, left in rtl.
roleProp<Role>Non—
onAction(event: AccessibilityActionEvent) => voidNonThe screen reader action taken, by name.
accessibleProp<boolean>NonMakes the view one screen reader element, read as its label or its children's text.
labelProp<string>NonWhat a screen reader says for the view.
hintProp<string>NonWhat happens when the view is activated, read after the label.
aria-hiddenProp<boolean>NonScreen readers skip the view and its subtree.
actionsProp<readonly AccessibilityAction[]>NonActions a screen reader offers; onAction receives the one taken.
liveProp<"off" | "polite" | "assertive">NonARIA's aria-live: announces changes to the view's content, on iOS too.
aria-disabledProp<boolean>Non—
aria-selectedProp<boolean>Non—
aria-checkedProp<boolean | "mixed">Non—
aria-busyProp<boolean>Non—
aria-expandedProp<boolean>Non—
aria-valueminProp<number>Non—
aria-valuemaxProp<number>Non—
aria-valuenowProp<number>Non—
aria-valuetextProp<string>Non—
gesturesreadonly Composable[]NonThe view's gestures; several race unless composed with together or orElse.
transitionPartial<Record<"opacity" | "backgroundColor" | "transform" | "borderRadius" | "borderColor" | "shadow" | "width" | "height" | "all", Animation<unknown> | AnimationSpec>>NonHow the animatable props move when they change, enter or leave, by group; a CSS transition compiles to it.
animatePartial<Record<AnimatableProps, string | number>>NonAnimatable props whose every change moves as transition says; the first value applies at once.
enterEffectNonWhere the view enters from: fade.and(slide.up(12)).
exitProp<Effect>NonWhere the view leaves to; it stays on screen until it is there. The renderer gets true, and keeps the view until exited.
layoutAnimation<number>NonHow the view moves to a new frame the layout gives it: layout={spring()}.
overflowProp<"visible" | "hidden" | "clip" | "scroll">Nonhidden and scroll clip; as in CSS, either lets a flex item shrink below its content.
borderWidthProp<number>Non—
backgroundGradient{ angle: number; colors: string[];}Non—
colorProp<string>Non—
sharedIdProp<string>NonA view the navigation stack flies to the view with the same sharedId on the screen it pushes or pops to (docs/navigation.md#shared-elements).
refElementRef<NativeViewHandle<VideoMethods>>Non—
srcBound<VideoSource>Non—
pausedBound<boolean>NonFalse plays once the source loads. play() and pause() act at once; the prop applies when it changes.
mutedBound<boolean>Non—
volumeBound<number>Non0 to 1.
rateBound<number>NonAbove 0; 1 is normal speed.
loopBound<boolean>Non—
objectFitBound<VideoObjectFit>Non'contain' by default.
controlsBound<boolean>NonThe platform's playback controls over the picture.
progressIntervalBound<number>NonMilliseconds between onProgress events while playing; 250 by default, 0 for none.
onLoad(event: VideoLoadEvent) => voidNon—
onProgress(event: VideoProgressEvent) => voidNon—
onBuffer(event: VideoBufferEvent) => voidNon—
onEnd(event: VideoEndEvent) => voidNon—
onError(event: VideoErrorEvent) => voidNon—
onPlaybackStateChange(event: VideoPlaybackStateEvent) => voidNon—
onFullscreenChange(event: VideoFullscreenEvent) => voidNon—
onPictureInPictureChange(event: VideoPictureInPictureEvent) => voidNon—
onAction — signatures de méthode

Signatures

ts
(event: AccessibilityActionEvent): void

Paramètres

NomTypeRequisDescription
eventAccessibilityActionEventOui—

Retourne

void

backgroundGradient — champs imbriqués

backgroundGradient champs

NomTypeRequisDescription
anglenumberOui—
colorsstring[]Oui—
onLoad — signatures de méthode

Signatures

ts
(event: VideoLoadEvent): void

Paramètres

NomTypeRequisDescription
eventVideoLoadEventOui—

Retourne

void

onProgress — signatures de méthode

Signatures

ts
(event: VideoProgressEvent): void

Paramètres

NomTypeRequisDescription
eventVideoProgressEventOui—

Retourne

void

onBuffer — signatures de méthode

Signatures

ts
(event: VideoBufferEvent): void

Paramètres

NomTypeRequisDescription
eventVideoBufferEventOui—

Retourne

void

onEnd — signatures de méthode

Signatures

ts
(event: VideoEndEvent): void

Paramètres

NomTypeRequisDescription
eventVideoEndEventOui—

Retourne

void

onError — signatures de méthode

Signatures

ts
(event: VideoErrorEvent): void

Paramètres

NomTypeRequisDescription
eventVideoErrorEventOui—

Retourne

void

onPlaybackStateChange — signatures de méthode

Signatures

ts
(event: VideoPlaybackStateEvent): void

Paramètres

NomTypeRequisDescription
eventVideoPlaybackStateEventOui—

Retourne

void

onFullscreenChange — signatures de méthode

Signatures

ts
(event: VideoFullscreenEvent): void

Paramètres

NomTypeRequisDescription
eventVideoFullscreenEventOui—

Retourne

void

onPictureInPictureChange — signatures de méthode

Signatures

ts
(event: VideoPictureInPictureEvent): void

Paramètres

NomTypeRequisDescription
eventVideoPictureInPictureEventOui—

Retourne

void

Généré depuis les déclarations TypeScript publiques : signatures, props et valeurs par défaut viennent de la source vérifiée, les descriptions de sa JSDoc. Aucune valeur par défaut n'est inventée.