NativeHlsVideo
HLS video element using the browser's built-in HLS support
HLS video element that relies on the browser’s native HLS support. Works on Safari and other browsers with built-in HLS playback. For cross-browser HLS support, use HlsJsVideo instead.
Import
import { NativeHlsVideo } from '@videojs/react/media/native-hls-video';import '@videojs/html/media/native-hls-video';Or load it from the CDN:
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-beta.32/media/native-hls-video.js"></script>Examples
Basic Usage
import { NativeHlsVideo } from '@videojs/react/media/native-hls-video';
export default function BasicUsage() {
return <NativeHlsVideo className="native-hls-video" src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM.m3u8" autoPlay muted playsInline loop />;
}
.native-hls-video {
width: 100%;
aspect-ratio: 16 / 9;
}
<media-container class="media-container">
<native-hls-video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM.m3u8" autoplay muted playsinline loop></native-hls-video>
</media-container>
.media-container {
position: relative;
display: block;
width: 100%;
aspect-ratio: 16 / 9;
}
import '@videojs/html/ui/container';
import '@videojs/html/media/native-hls-video';
API Reference
Props
Accepts the standard React props for a native <video>, plus these Video.js-specific props:
| Prop | Type | Default | Details |
|---|---|---|---|
preload | MediaPreloadType | 'metadata' | |
| |||
source | { src?: string; drm?: DrmSystemsConfig; engine?: NativeHlsEngineConfig } | null | null | |
| |||
src | string | '' | |
| |||
streamType | MediaStreamType | "unknown" | |
| |||
Engine options
source.engine.nativeHls
This element hands playback to the browser, so there’s no JavaScript engine to configure. This carries the one thing native playback still needs from you. Media Sources covers how engine options fit into a structured source.
<NativeHlsVideo
source={{
src: 'https://example.com/playlist.m3u8',
engine: {
nativeHls: {
drmSystems: { 'com.apple.fps': { licenseUrl: 'https://example.com/license' } },
},
},
}}
/>const video = document.querySelector('native-hls-video');
video.source = {
src: 'https://example.com/playlist.m3u8',
engine: {
nativeHls: {
drmSystems: { 'com.apple.fps': { licenseUrl: 'https://example.com/license' } },
},
},
};| Option | Type | Details |
|---|---|---|
drmSystems | DrmSystemsConfig | undefined | |
| ||
Ref
Forwards its ref to the rendered <video>. The ref is an HTMLVideoElement and exposes its complete native property and method API.
Events
Handle standard media events with React event props such as onPlay and onTimeUpdate. For native events without a React prop, attach a listener through the ref with addEventListener.