API publique
PlayerFacade
| Méthode ou flux |
Usage |
Notes |
attach |
Associe un HTMLVideoElement au runtime. |
Reçoit plugins, config, ports et factories de moteurs. |
load |
Charge un PlayerConfig ou une source. |
Sélection de moteur, sidecars, pistes et état de chargement. |
play / pause |
Contrôle de lecture. |
Promesses compatibles avec les politiques du navigateur. |
seekTo |
Positionne la lecture. |
Doit respecter les contraintes live et moteur. |
setVolume / setMuted |
Contrôle audio. |
Surface stable pour UI. |
setAudioTrack / setTextTrack |
Sélection des pistes. |
Dépend des capacités du moteur actif. |
setPlaybackRate |
Vitesse de lecture. |
VOD, cours, podcasts ou révision. |
snapshot |
État instantané. |
Lecture synchrone pour UI et diagnostics. |
state$ / events$ |
Flux observables. |
Source des intégrations Angular, de la télémétrie et des plugins. |
Runtime direct avec Shaka
import { createDefaultConfig, PlayerFacade } from "@ngxsp/core";
import { createShakaEngineFactory } from "@ngxsp/engine-shaka";
const config = createDefaultConfig({
source: {
type: "hls",
url: "https://example.com/master.m3u8",
contentId: "movie-42"
},
subtitles: { enabled: true, providers: ["local"], preferredLang: "fr" }
});
const facade = new PlayerFacade();
facade.attach(videoEl, [], config, undefined, [createShakaEngineFactory()]);
await facade.load(config);