/**
* @file loader.js
* /
importiere Komponente aus '../component.js';
importiere Tech aus './tech.js';
importiere {toTitleCase} aus '../utils/string-cases.js';
import mergeOptions from '../utils/merge-options.js';
/**
* Der `MediaLoader` ist die `Component`, die entscheidet, welche Wiedergabetechnologie geladen werden soll
* wenn ein Spieler initialisiert wird.
*
* @erweitert Komponente
* /
Klasse MediaLoader erweitert Komponente {
/**
* Erstellen Sie eine Instanz dieser Klasse.
*
* @param {Player} Spieler
* Der `Player`, an den diese Klasse angehängt werden soll.
*
* @param {Object} [Optionen]
* Der Schlüssel/Wertspeicher der Playeroptionen.
*
* @param {Component~ReadyCallback} [ready]
* Die Funktion, die ausgeführt wird, wenn diese Komponente bereit ist.
* /
constructor(player, options, ready) {
//MediaLoader hat kein Element
const options_ = mergeOptions ({createEl: falsch}, Optionen);
super (Spieler, Optionen_, bereit);
//Wenn es bei der Initialisierung des Players keine Quellen gibt,
//lade die erste unterstützte Wiedergabe-Technologie.
wenn (! options.playerOptions.Sources || options.playerOptions.sources.length === 0) {
für (sei i = 0, j = options.playerOptions.techOrder; i < j.length; i++) {
const techName = toTitleCase (j [i]);
let tech = Tech.getTech(techName);
// Unterstützung des alten Verhaltens, dass Techs als Komponenten registriert werden.
// Entfernen, sobald das veraltete Verhalten entfernt wird.
wenn (! Technischer Name) {
tech = Component.getComponent(techName);
}
// Prüfen Sie, ob der Browser diese Technologie unterstützt
wenn (tech && tech.isSupported ()) {
player.LoadTech_ (TechName);
pause;
}
}
} sonst {
//Durchsuche die Wiedergabe-Technologien (z. B. HTML5) und überprüfe, ob sie unterstützt werden.
//Dann lade die beste Quelle.
//Ein paar Annahmen hier:
//Alle Wiedergabe-Technologien respektieren Preload false.
player.src (Options.PlayerOptions.Quellen);
}
}
}
component.registerComponent ('MediaLoader', MediaLoader);
exportiert den Standard-MediaLoader;