Aller au contenu

PlayerConfig

createDefaultConfig construit un PlayerConfig complet à partir d'une source. Seul source est obligatoire dans les surcharges ; les sous-configurations obligatoires sont remplies avec des valeurs par défaut connues.

import { createDefaultConfig } from "@ngxsp/core";

export const config = createDefaultConfig({
  source: {
    type: "url",
    url: "https://cdn.example.com/trailer.mp4",
    contentId: "trailer-2026"
  }
});

Valeurs par défaut documentées

Bloc Défaut Explication À éviter
progress { mode: "local", intervalSec: 5 } Sauvegarde de progression locale par défaut. Choisir server ou hybrid sans endpoint ni port HTTP.
ui { ratios: ["16:9"], defaultRatio: "16:9", keyboardShortcuts: true } Habillage, ratios, titres, raccourcis, chapitres, vignettes, segments ignorables et épisode suivant. Mettre des données métier lourdes dans ui.
resilience { retries: 2, backoffMs: { min: 300, max: 1500 } } Base des reprises après erreurs transitoires. Augmenter retries sur DRM/live sans télémétrie.
subtitles { enabled: false, providers: ["local"] } Recherche et chargement de sous-titres. Activer un fournisseur Internet sans clé d'API, cache, quotas et cadre légal.
metadata { enabled: false, providers: ["local"], localSidecar: false } Enrichissement catalogue ou sidecar. Activer un fournisseur externe sans cache ni gestion de secrets.
ads { enabled: false, mode: "csai" } Stratégie publicitaire : CSAI, SSAI ou mixed. Activer les publicités sans providerConfig ni droits de contenu.

Champs avancés

Champ Sens À utiliser quand
profile Profil global default, tv, mobile, low-latency. Une application cible un contexte de lecture dominant.
drm DRM de premier niveau qui surcharge ou complète source.drm. Droits séparés de la source catalogue.
playlist / playlistStartIndex Liste de PlayerSource et index de départ. File d'attente audio, lecture continue, cours, galerie vidéo.
autoNext Passage automatique à l'item suivant. Séries, playlists, cours par chapitres.
series Mode épisodes avec titre, index courant, preload et surcharges UI. Séries TV, formations, podcasts épisodiques.
offline Intention hors-ligne via enabled et key. Contenus explicitement téléchargeables.
remoteConfig Charge un JSON distant avec TTL, mode de fusion et allow-list. Ajuster résilience, publicités, UI, subtitles ou metadata sans recompilation.

Fusion de createDefaultConfig

Les fusions sont superficielles sauf resilience.backoffMs, qui conserve min et max par défaut si un seul champ est fourni. Ne pas supposer une fusion profonde pour tous les objets imbriqués.