优化结构

This commit is contained in:
Harvey Zack committed 2018-12-14 17:03:41 +08:00
1 parent c6869686c3
commit f2658673dc
6 files changed
+67 -102

No files matched your search

+6 -2
View File
@@ -24,8 +24,12 @@
new Artplayer({ new Artplayer({
container: '.artplayer', container: '.artplayer',
url: function () { url: $urlInput.value,
return this.plugins.artplayerPluginFlv.load($urlInput.value) type: 'flv',
customType: {
flv: function(video, url) {
this.plugins.artplayerPluginFlv.init(video, url);
},
}, },
plugins: [artplayerPluginFlv] plugins: [artplayerPluginFlv]
}); });
+42 -63
View File
@@ -4,30 +4,6 @@
(factory((global['artplayer-plugin-flv'] = {}))); (factory((global['artplayer-plugin-flv'] = {})));
}(this, (function (exports) { 'use strict'; }(this, (function (exports) { 'use strict';
function createCommonjsModule(fn, module) {
return module = { exports: {} }, fn(module, module.exports), module.exports;
}
var _typeof_1 = createCommonjsModule(function (module) {
function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
function _typeof(obj) {
if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") {
module.exports = _typeof = function _typeof(obj) {
return _typeof2(obj);
};
} else {
module.exports = _typeof = function _typeof(obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj);
};
}
return _typeof(obj);
}
module.exports = _typeof;
});
function _classCallCheck(instance, Constructor) { function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) { if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function"); throw new TypeError("Cannot call a class as a function");
@@ -54,6 +30,30 @@
var createClass = _createClass; var createClass = _createClass;
function createCommonjsModule(fn, module) {
return module = { exports: {} }, fn(module, module.exports), module.exports;
}
var _typeof_1 = createCommonjsModule(function (module) {
function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
function _typeof(obj) {
if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") {
module.exports = _typeof = function _typeof(obj) {
return _typeof2(obj);
};
} else {
module.exports = _typeof = function _typeof(obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj);
};
}
return _typeof(obj);
}
module.exports = _typeof;
});
function _assertThisInitialized(self) { function _assertThisInitialized(self) {
if (self === void 0) { if (self === void 0) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
@@ -287,11 +287,12 @@
errorHandle(typeof window.fetch === 'function', "Unsupported 'fetch' method"); errorHandle(typeof window.fetch === 'function', "Unsupported 'fetch' method");
}; };
var CreatMediaSource = function CreatMediaSource(art) { var CreatMediaSource = function CreatMediaSource(flv) {
classCallCheck(this, CreatMediaSource); classCallCheck(this, CreatMediaSource);
this.mediaSource = new MediaSource(); this.mediaSource = new MediaSource();
this.url = URL.createObjectURL(this.mediaSource); this.url = URL.createObjectURL(this.mediaSource);
flv.mediaElement.src = this.url;
}; };
var Flv = var Flv =
@@ -305,41 +306,17 @@
classCallCheck(this, Flv); classCallCheck(this, Flv);
_this = possibleConstructorReturn(this, getPrototypeOf(Flv).call(this)); _this = possibleConstructorReturn(this, getPrototypeOf(Flv).call(this));
_this.support = new CheckSupport(); _this.mediaElement = mediaElement;
_this.url = url;
if (mediaElement) { _this.support = new CheckSupport(assertThisInitialized(assertThisInitialized(_this)));
_this.attachMediaElement(mediaElement); _this.mediaSource = new CreatMediaSource(assertThisInitialized(assertThisInitialized(_this)));
}
if (url) {
_this.loadUrl(url);
}
return _this; return _this;
} }
createClass(Flv, [{ createClass(Flv, [{
key: "attachMediaElement", key: "destroy",
value: function attachMediaElement(mediaElement) { value: function destroy() {
errorHandle(mediaElement instanceof HTMLVideoElement && mediaElement.tagName === 'VIDEO', "The 'mediaElement' does not seem to be a HTMLVideoElement"); console.log(this);
this.mediaElement = mediaElement;
return this;
}
}, {
key: "loadUrl",
value: function loadUrl(url) {
var type = _typeof_1(url);
errorHandle(type === 'string', "The 'url' require 'string' type, but got '".concat(type, "'"));
this.url = url;
return this;
}
}, {
key: "start",
value: function start() {
this.mediaSource = new CreatMediaSource();
console.log('start');
return this;
} }
}]); }]);
@@ -349,14 +326,16 @@
window.Flv = Flv; window.Flv = Flv;
function artplayerPluginFlv(art) { function artplayerPluginFlv(art) {
var $video = art.template.$video; var flv = null;
var flv = new Flv($video); art.on('destroy', function () {
return { if (flv) {
load: function load(url) { flv.destroy();
return new Promise(function (resolve) { }
flv.loadUrl(url).start();
return resolve(flv.mediaSource.url);
}); });
return {
flv: flv,
init: function init(mediaElement, url) {
flv = new Flv(mediaElement, url);
} }
}; };
} }
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"artplayer-plugin-flv.js","sources":["../../node_modules/@babel/runtime/helpers/typeof.js","../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/inherits.js","../../packages/artplayer-plugin-flv/node_modules/tiny-emitter/index.js","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../../packages/artplayer-plugin-flv/src/flv/utils.js","../../packages/artplayer-plugin-flv/src/flv/checkSupport.js","../../packages/artplayer-plugin-flv/src/flv/creatMediaSource.js","../../packages/artplayer-plugin-flv/src/flv/index.js","../../packages/artplayer-plugin-flv/src/index.js"],"sourcesContent":["function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\nLine truncated {"version":3,"file":"artplayer-plugin-flv.js","sources":["../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../node_modules/@babel/runtime/helpers/typeof.js","../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/inherits.js","../../packages/artplayer-plugin-flv/node_modules/tiny-emitter/index.js","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../../packages/artplayer-plugin-flv/src/flv/utils.js","../../packages/artplayer-plugin-flv/src/flv/checkSupport.js","../../packages/artplayer-plugin-flv/src/flv/creatMediaSource.js","../../packages/artplayer-plugin-flv/src/flv/index.js","../../packages/artplayer-plugin-flv/src/index.js"],"sourcesContent":["function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\nLine truncated
@@ -1,6 +1,7 @@
export default class CreatMediaSource { export default class CreatMediaSource {
constructor(art) { constructor(flv) {
this.mediaSource = new MediaSource(); this.mediaSource = new MediaSource();
this.url = URL.createObjectURL(this.mediaSource); this.url = URL.createObjectURL(this.mediaSource);
flv.mediaElement.src = this.url;
} }
} }
+4 -26
View File
@@ -1,40 +1,18 @@
import Emitter from 'tiny-emitter'; import Emitter from 'tiny-emitter';
import CheckSupport from './checkSupport'; import CheckSupport from './checkSupport';
import CreatMediaSource from './creatMediaSource'; import CreatMediaSource from './creatMediaSource';
import { errorHandle } from './utils';
class Flv extends Emitter { class Flv extends Emitter {
constructor(mediaElement, url) { constructor(mediaElement, url) {
super(); super();
this.support = new CheckSupport();
if (mediaElement) {
this.attachMediaElement(mediaElement);
}
if (url) {
this.loadUrl(url);
}
}
attachMediaElement(mediaElement) {
errorHandle(
mediaElement instanceof HTMLVideoElement && mediaElement.tagName === 'VIDEO',
"The 'mediaElement' does not seem to be a HTMLVideoElement",
);
this.mediaElement = mediaElement; this.mediaElement = mediaElement;
return this;
}
loadUrl(url) {
const type = typeof url;
errorHandle(type === 'string', `The 'url' require 'string' type, but got '${type}'`);
this.url = url; this.url = url;
return this; this.support = new CheckSupport(this);
this.mediaSource = new CreatMediaSource(this);
} }
start() { destroy() {
this.mediaSource = new CreatMediaSource(); console.log(this);
console.log('start');
return this;
} }
} }
+12 -9
View File
@@ -1,16 +1,19 @@
import Flv from './flv'; import Flv from './flv';
function artplayerPluginFlv(art) { function artplayerPluginFlv(art) {
const { let flv = null;
template: { $video },
} = art; art.on('destroy', () => {
const flv = new Flv($video); if (flv) {
flv.destroy();
}
});
return { return {
load: url => flv,
new Promise(resolve => { init: (mediaElement, url) => {
flv.loadUrl(url).start(); flv = new Flv(mediaElement, url);
return resolve(flv.mediaSource.url); },
}),
}; };
} }