: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
var _window2 = _interopRequireDefault(_window);
var _document = _dereq_(2);
var _document2 = _interopRequireDefault(_document);
var _mejs2 = _interopRequireDefault(_mejs);
var _i18n2 = _interopRequireDefault(_i18n);
var _renderer = _dereq_(8);
var _general = _dereq_(18);
var _constants = _dereq_(16);
var _media = _dereq_(19);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var PluginDetector = exports.PluginDetector = {
hasPluginVersion: function hasPluginVersion(plugin, v) {
var pv = PluginDetector.plugins[plugin];
return pv[0] > v[0] || pv[0] === v[0] && pv[1] > v[1] || pv[0] === v[0] && pv[1] === v[1] && pv[2] >= v[2];
addPlugin: function addPlugin(p, pluginName, mimeType, activeX, axDetect) {
PluginDetector.plugins[p] = PluginDetector.detectPlugin(pluginName, mimeType, activeX, axDetect);
detectPlugin: function detectPlugin(pluginName, mimeType, activeX, axDetect) {
if (_constants.NAV.plugins !== null && _constants.NAV.plugins !== undefined && _typeof(_constants.NAV.plugins[pluginName]) === 'object') {
description = _constants.NAV.plugins[pluginName].description;
if (description && !(typeof _constants.NAV.mimeTypes !== 'undefined' && _constants.NAV.mimeTypes[mimeType] && !_constants.NAV.mimeTypes[mimeType].enabledPlugin)) {
version = description.replace(pluginName, '').replace(/^\s+/, '').replace(/\sr/gi, '.').split('.');
for (var i = 0, total = version.length; i < total; i++) {
version[i] = parseInt(version[i].match(/\d+/), 10);
} else if (_window2.default.ActiveXObject !== undefined) {
ax = new ActiveXObject(activeX);
PluginDetector.addPlugin('flash', 'Shockwave Flash', 'application/x-shockwave-flash', 'ShockwaveFlash.ShockwaveFlash', function (ax) {
d = ax.GetVariable("$version");
d = d.split(" ")[1].split(",");
version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
var FlashMediaElementRenderer = {
create: function create(mediaElement, options, mediaFiles) {
flash.id = mediaElement.id + '_' + flash.options.prefix;
flash.mediaElement = mediaElement;
flash.flashApiStack = [];
var props = _mejs2.default.html5media.properties,
assignGettersSetters = function assignGettersSetters(propName) {
flash.flashState[propName] = null;
var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
flash['get' + capName] = function () {
if (flash.flashApi !== null) {
if (typeof flash.flashApi['get_' + propName] === 'function') {
var value = flash.flashApi['get_' + propName]();
if (propName === 'buffered') {
start: function start() {
flash['set' + capName] = function (value) {
if (propName === 'src') {
value = (0, _media.absolutizeUrl)(value);
if (flash.flashApi !== null && flash.flashApi['set_' + propName] !== undefined) {
flash.flashApi['set_' + propName](value);
flash.flashApiStack.push({
for (var i = 0, total = props.length; i < total; i++) {
assignGettersSetters(props[i]);
var methods = _mejs2.default.html5media.methods,
assignMethods = function assignMethods(methodName) {
flash[methodName] = function () {
if (flash.flashApi !== null) {
if (flash.flashApi['fire_' + methodName]) {
flash.flashApi['fire_' + methodName]();
flash.flashApiStack.push({
for (var _i = 0, _total = methods.length; _i < _total; _i++) {
assignMethods(methods[_i]);
var initEvents = ['rendererready'];
for (var _i2 = 0, _total2 = initEvents.length; _i2 < _total2; _i2++) {
var event = (0, _general.createEvent)(initEvents[_i2], flash);
mediaElement.dispatchEvent(event);
_window2.default['__ready__' + flash.id] = function () {
flash.flashApi = _document2.default.getElementById('__' + flash.id);
if (flash.flashApiStack.length) {
for (var _i3 = 0, _total3 = flash.flashApiStack.length; _i3 < _total3; _i3++) {
var stackItem = flash.flashApiStack[_i3];
if (stackItem.type === 'set') {
var propName = stackItem.propName,
capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
flash['set' + capName](stackItem.value);
} else if (stackItem.type === 'call') {
flash[stackItem.methodName]();
_window2.default['__event__' + flash.id] = function (eventName, message) {
var event = (0, _general.createEvent)(eventName, flash);
event.data = JSON.parse(message);
event.details.data = JSON.parse(message);
flash.mediaElement.dispatchEvent(event);
flash.flashWrapper = _document2.default.createElement('div');
if (['always', 'sameDomain'].indexOf(flash.options.shimScriptAccess) === -1) {
flash.options.shimScriptAccess = 'sameDomain';
var autoplay = mediaElement.originalNode.autoplay,
flashVars = ['uid=' + flash.id, 'autoplay=' + autoplay, 'allowScriptAccess=' + flash.options.shimScriptAccess, 'preload=' + (mediaElement.originalNode.getAttribute('preload') || '')],
isVideo = mediaElement.originalNode !== null && mediaElement.originalNode.tagName.toLowerCase() === 'video',
flashHeight = isVideo ? mediaElement.originalNode.height : 1,
flashWidth = isVideo ? mediaElement.originalNode.width : 1;
if (mediaElement.originalNode.getAttribute('src')) {
flashVars.push('src=' + mediaElement.originalNode.getAttribute('src'));
if (flash.options.enablePseudoStreaming === true) {
flashVars.push('pseudostreamstart=' + flash.options.pseudoStreamingStartQueryParam);
flashVars.push('pseudostreamtype=' + flash.options.pseudoStreamingType);
if (flash.options.streamDelimiter) {
flashVars.push('streamdelimiter=' + encodeURIComponent(flash.options.streamDelimiter));
if (flash.options.proxyType) {
flashVars.push('proxytype=' + flash.options.proxyType);
mediaElement.appendChild(flash.flashWrapper);
mediaElement.originalNode.style.display = 'none';
if (_constants.IS_IE || _constants.IS_EDGE) {
var specialIEContainer = _document2.default.createElement('div');
flash.flashWrapper.appendChild(specialIEContainer);
if (_constants.IS_EDGE) {
settings = ['type="application/x-shockwave-flash"', 'data="' + flash.options.pluginPath + flash.options.filename + '"', 'id="__' + flash.id + '"', 'width="' + flashWidth + '"', 'height="' + flashHeight + '\'"'];
settings = ['classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"', 'codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"', 'id="__' + flash.id + '"', 'width="' + flashWidth + '"', 'height="' + flashHeight + '"'];
settings.push('style="clip: rect(0 0 0 0); position: absolute;"');
specialIEContainer.outerHTML = '<object ' + settings.join(' ') + '>' + ('<param name="movie" value="' + flash.options.pluginPath + flash.options.filename + '?x=' + new Date() + '" />') + ('<param name="flashvars" value="' + flashVars.join('&') + '" />') + '<param name="quality" value="high" />' + '<param name="bgcolor" value="#000000" />' + '<param name="wmode" value="transparent" />' + ('<param name="allowScriptAccess" value="' + flash.options.shimScriptAccess + '" />') + '<param name="allowFullScreen" value="true" />' + ('<div>' + _i18n2.default.t('mejs.install-flash') + '</div>') + '</object>';
settings = ['id="__' + flash.id + '"', 'name="__' + flash.id + '"', 'play="true"', 'loop="false"', 'quality="high"', 'bgcolor="#000000"', 'wmode="transparent"', 'allowScriptAccess="' + flash.options.shimScriptAccess + '"', 'allowFullScreen="true"', 'type="application/x-shockwave-flash"', 'pluginspage="//www.macromedia.com/go/getflashplayer"', 'src="' + flash.options.pluginPath + flash.options.filename + '"', 'flashvars="' + flashVars.join('&') + '"'];
settings.push('width="' + flashWidth + '"');
settings.push('height="' + flashHeight + '"');
settings.push('style="position: fixed; left: -9999em; top: -9999em;"');
flash.flashWrapper.innerHTML = '<embed ' + settings.join(' ') + '>';
flash.flashNode = flash.flashWrapper.lastChild;
flash.hide = function () {
flash.flashNode.style.display = 'none';
flash.show = function () {
flash.flashNode.style.display = '';
flash.setSize = function (width, height) {
flash.flashNode.style.width = width + 'px';
flash.flashNode.style.height = height + 'px';
if (flash.flashApi !== null && typeof flash.flashApi.fire_setSize === 'function') {
flash.flashApi.fire_setSize(width, height);
flash.destroy = function () {
flash.flashNode.remove();
if (mediaFiles && mediaFiles.length > 0) {
for (var _i4 = 0, _total4 = mediaFiles.length; _i4 < _total4; _i4++) {
if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i4].type)) {
flash.setSrc(mediaFiles[_i4].src);
var hasFlash = PluginDetector.hasPluginVersion('flash', [10, 0, 0]);
_media.typeChecks.push(function (url) {
if (url.startsWith('rtmp')) {
if (~url.indexOf('.mp3')) {
} else if (/\.og(a|g)/i.test(url)) {
} else if (~url.indexOf('.m3u8')) {
return 'application/x-mpegURL';
} else if (~url.indexOf('.mpd')) {
return 'application/dash+xml';
} else if (~url.indexOf('.flv')) {
var FlashMediaElementVideoRenderer = {
filename: 'mediaelement-flash-video.swf',
enablePseudoStreaming: false,
pseudoStreamingStartQueryParam: 'start',
pseudoStreamingType: 'byte',
canPlayType: function canPlayType(type) {
return ~['video/mp4', 'video/rtmp', 'audio/rtmp', 'rtmp/mp4', 'audio/mp4', 'video/flv', 'video/x-flv'].indexOf(type.toLowerCase());
create: FlashMediaElementRenderer.create
_renderer.renderer.add(FlashMediaElementVideoRenderer);
var FlashMediaElementHlsVideoRenderer = {
filename: 'mediaelement-flash-video-hls.swf'
canPlayType: function canPlayType(type) {
return ~['application/x-mpegurl', 'application/vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase());
create: FlashMediaElementRenderer.create
_renderer.renderer.add(FlashMediaElementHlsVideoRenderer);
var FlashMediaElementMdashVideoRenderer = {
filename: 'mediaelement-flash-video-mdash.swf'
canPlayType: function canPlayType(type) {
return ~['application/dash+xml'].indexOf(type.toLowerCase());
create: FlashMediaElementRenderer.create
_renderer.renderer.add(FlashMediaElementMdashVideoRenderer);
var FlashMediaElementAudioRenderer = {
filename: 'mediaelement-flash-audio.swf'
canPlayType: function canPlayType(type) {
return ~['audio/mp3'].indexOf(type.toLowerCase());
create: FlashMediaElementRenderer.create
_renderer.renderer.add(FlashMediaElementAudioRenderer);
var FlashMediaElementAudioOggRenderer = {
prefix: 'flash_audio_ogg',
filename: 'mediaelement-flash-audio-ogg.swf'
canPlayType: function canPlayType(type) {
return ~['audio/ogg', 'audio/oga', 'audio/ogv'].indexOf(type.toLowerCase());
create: FlashMediaElementRenderer.create
_renderer.renderer.add(FlashMediaElementAudioOggRenderer);
},{"16":16,"18":18,"19":19,"2":2,"3":3,"5":5,"7":7,"8":8}],12:[function(_dereq_,module,exports){
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _window = _dereq_(3);
var _window2 = _interopRequireDefault(_window);
var _mejs2 = _interopRequireDefault(_mejs);
var _renderer = _dereq_(8);
var _general = _dereq_(18);
var _constants = _dereq_(16);
var _media = _dereq_(19);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
load: function load(settings) {
if (typeof flvjs !== 'undefined') {
NativeFlv.promise = new Promise(function (resolve) {
NativeFlv._createPlayer(settings);
settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.jsdelivr.net/npm/flv.js@latest';
NativeFlv.promise = NativeFlv.promise || (0, _dom.loadScript)(settings.options.path);
NativeFlv.promise.then(function () {
NativeFlv._createPlayer(settings);
return NativeFlv.promise;
_createPlayer: function _createPlayer(settings) {
flvjs.LoggingControl.enableDebug = settings.options.debug;
flvjs.LoggingControl.enableVerbose = settings.options.debug;
var player = flvjs.createPlayer(settings.options, settings.configs);
_window2.default['__ready__' + settings.id](player);
var FlvNativeRenderer = {
path: 'https://cdn.jsdelivr.net/npm/flv.js@latest',
canPlayType: function canPlayType(type) {