playable
Version:
Video player based on HTML5Video
45 lines • 2.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.create = exports.clearPlaybackAdapters = exports.clearAdditionalModules = exports.registerPlaybackAdapter = exports.registerModule = exports.container = void 0;
var tslib_1 = require("tslib");
var dependency_container_1 = (0, tslib_1.__importDefault)(require("./dependency-container"));
var player_facade_1 = (0, tslib_1.__importDefault)(require("./player-facade"));
var default_modules_1 = (0, tslib_1.__importDefault)(require("./default-modules"));
var default_set_1 = (0, tslib_1.__importDefault)(require("../modules/playback-engine/output/native/adapters/default-set"));
var additionalModules = {};
var playbackAdapters = (0, tslib_1.__spreadArray)([], default_set_1.default, true);
exports.container = dependency_container_1.default.createContainer();
exports.container.register(default_modules_1.default);
var defaultModulesNames = Object.keys(default_modules_1.default);
function registerModule(id, module) {
additionalModules[id] = module;
}
exports.registerModule = registerModule;
function registerPlaybackAdapter(adapter) {
playbackAdapters.push(adapter);
}
exports.registerPlaybackAdapter = registerPlaybackAdapter;
function clearAdditionalModules() {
additionalModules = {};
}
exports.clearAdditionalModules = clearAdditionalModules;
function clearPlaybackAdapters() {
playbackAdapters = (0, tslib_1.__spreadArray)([], default_set_1.default, true);
}
exports.clearPlaybackAdapters = clearPlaybackAdapters;
function create(params, themeConfig) {
if (params === void 0) { params = {}; }
var scope = exports.container.createScope();
var additionalModuleNames = Object.keys(additionalModules);
if (additionalModuleNames.length) {
additionalModuleNames.forEach(function (moduleName) {
return scope.registerClass(moduleName, additionalModules[moduleName], {
lifetime: dependency_container_1.default.Lifetime.SCOPED,
});
});
}
scope.registerValue('availablePlaybackAdapters', playbackAdapters);
return new player_facade_1.default(params, scope, defaultModulesNames, additionalModuleNames, themeConfig);
}
exports.create = create;
//# sourceMappingURL=player-factory.js.map