chrome:shell.skip

generated:catalog.entry.video.title

generated:catalog.entry.video.description

@xngui/components/video
@xngui/components/video

chrome:demo.section

chrome:demo.preview

0:00 / 0:00
demo-preview:video.via-xvideo-apis
demo-preview:hints.category.navigation:
Tab
demo-preview:hints.category.focus:
Focus
demo-preview:hints.category.shortcuts:
Space
import { Component } from '@angular/core';
import { XVideo } from '@xngui/components/video';
 
@Component({
selector: 'app-example',
imports: [XVideo],
templateUrl: './video.component.html',
})
export class ExampleComponent {}

chrome:demo.events.title

chrome:demo.events.empty

chrome:demo.api.title

x-video

chrome:demo.api.col.property
chrome:demo.api.col.type
chrome:demo.api.col.default
chrome:demo.api.col.description
src chrome:demo.api.required
XFileSource
—
Video source — URL, data URI, blob, or file.
poster
XFileSource
—
Poster image source shown before playback starts.
label
string
—
Accessible name for the player host (`aria-label`).
size
XSize
—
Visual size tier — falls back to XConfigService when unset.
density
XDensity
—
Spacing offsets — orthogonal to `size`; falls back to XConfigService when unset.
controls
boolean
true
Show custom toolbar chrome; `false` leaves the native element chromeless.
preload
XMediaPreload
'metadata'
Native preload hint — not shown in the player chrome.
autoplay
boolean
false
Start playback automatically; forces mute on the native element when enabled.
crossOrigin
string
—
Native `crossorigin` attribute when loading cross-origin media.
ratio
XAspectRatioValue
16 / 9
Aspect ratio when framed; `undefined` uses intrinsic video sizing.