diff --git a/docs/uncompiled/artplayer-plugin-hls-quality/index.js b/docs/uncompiled/artplayer-plugin-hls-quality/index.js index 613726588..c72f79290 100644 --- a/docs/uncompiled/artplayer-plugin-hls-quality/index.js +++ b/docs/uncompiled/artplayer-plugin-hls-quality/index.js @@ -145,20 +145,37 @@ })({"hMiLQ":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -var _imageSvg = require("bundle-text:./image.svg"); -var _imageSvgDefault = parcelHelpers.interopDefault(_imageSvg); +parcelHelpers.export(exports, "default", ()=>artplayerPluginHlsQuality); +var _qualitySvg = require("bundle-text:./quality.svg"); +var _qualitySvgDefault = parcelHelpers.interopDefault(_qualitySvg); function artplayerPluginHlsQuality(option) { return (art)=>{ - const { $video } = art.template; - const { errorHandle } = art.constructor.utils; - function update() { - const hls = art.hls || window.hls; - errorHandle(hls && hls.media === $video, 'Cannot find instance of HLS from "art.hls" or "window.hls"'); + const { $video } = art.template; + const { errorHandle } = art.constructor.utils; + function updateQuality(hls) { const auto = option.auto || "Auto"; const title = option.title || "Quality"; const getResolution = option.getResolution || ((level)=>(level.height || "Unknown ") + "P"); const defaultLevel = hls.levels[hls.currentLevel]; const defaultHtml = defaultLevel ? getResolution(defaultLevel) : auto; + const selector = hls.levels.map((item, index)=>{ + return { + html: getResolution(item), + level: item.level || index, + default: defaultLevel === item + }; + }).sort((a, b)=>b.level - a.level); + selector.push({ + html: auto, + level: -1, + default: defaultLevel === -1 + }); + const onSelect = (item)=>{ + hls.currentLevel = item.level; + art.loading.show = true; + art.notice.show = `${title}: ${item.html}`; + return item.html; + }; if (option.control) art.controls.update({ name: "hls-quality", position: "right", @@ -166,56 +183,39 @@ function artplayerPluginHlsQuality(option) { style: { padding: "0 10px" }, - selector: hls.levels.map((item, index)=>{ - return { - html: getResolution(item), - level: item.level || index, - default: defaultLevel === item - }; - }), - onSelect (item) { - hls.currentLevel = item.level; - art.loading.show = true; - return item.html; - } + selector: selector, + onSelect: onSelect }); if (option.setting) art.setting.update({ name: "hls-quality", tooltip: defaultHtml, html: title, - icon: (0, _imageSvgDefault.default), + icon: (0, _qualitySvgDefault.default), width: 200, - selector: hls.levels.map((item, index)=>{ - return { - html: getResolution(item), - level: item.level || index, - default: defaultLevel === item - }; - }), - onSelect: function(item) { - hls.currentLevel = item.level; - art.loading.show = true; - return item.html; - } + selector: selector, + onSelect: onSelect }); } + function updateAudio(hls) { + // + } + function update() { + const hls = art.hls || window.hls; + errorHandle(hls && hls.media === $video, 'Cannot find instance of HLS from "art.hls" or "window.hls"'); + updateQuality(hls); + updateAudio(hls); + } art.on("ready", update); art.on("restart", update); return { - name: "artplayerPluginHlsQuality" + name: "artplayerPluginHlsQuality", + update }; }; } -exports.default = artplayerPluginHlsQuality; -artplayerPluginHlsQuality.env = "development"; -artplayerPluginHlsQuality.version = "1.0.2"; -artplayerPluginHlsQuality.build = "2023-04-23 09:44:07"; if (typeof window !== "undefined") window["artplayerPluginHlsQuality"] = artplayerPluginHlsQuality; -},{"bundle-text:./image.svg":"1HFaU","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"1HFaU":[function(require,module,exports) { -module.exports = "\n\n\n"; - -},{}],"5dUr6":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6","bundle-text:./quality.svg":"b53kH"}],"5dUr6":[function(require,module,exports) { exports.interopDefault = function(a) { return a && a.__esModule ? a : { default: a @@ -228,7 +228,7 @@ exports.defineInteropFlag = function(a) { }; exports.exportAll = function(source, dest) { Object.keys(source).forEach(function(key) { - if (key === "default" || key === "__esModule" || dest.hasOwnProperty(key)) return; + if (key === "default" || key === "__esModule" || Object.prototype.hasOwnProperty.call(dest, key)) return; Object.defineProperty(dest, key, { enumerable: true, get: function() { @@ -245,6 +245,9 @@ exports.export = function(dest, destName, get) { }); }; +},{}],"b53kH":[function(require,module,exports) { +module.exports = "\n\n\n"; + },{}]},["hMiLQ"], "hMiLQ", "parcelRequire4dc0") //# sourceMappingURL=index.js.map diff --git a/docs/uncompiled/artplayer-plugin-hls-quality/index.js.map b/docs/uncompiled/artplayer-plugin-hls-quality/index.js.map index 49d856675..4b7c02c9c 100644 --- a/docs/uncompiled/artplayer-plugin-hls-quality/index.js.map +++ b/docs/uncompiled/artplayer-plugin-hls-quality/index.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["packages/artplayer-plugin-hls-quality/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-cdfe3d14efbab84d.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["import image from 'bundle-text:./image.svg';\n\nexport default function artplayerPluginHlsQuality(option) {\n return (art) => {\n const { $video } = art.template;\n const { errorHandle } = art.constructor.utils;\n\n function update() {\n const hls = art.hls || window.hls;\n errorHandle(hls && hls.media === $video, 'Cannot find instance of HLS from \"art.hls\" or \"window.hls\"');\n const auto = option.auto || 'Auto';\n const title = option.title || 'Quality';\n const getResolution = option.getResolution || ((level) => (level.height || 'Unknown ') + 'P');\n const defaultLevel = hls.levels[hls.currentLevel];\n const defaultHtml = defaultLevel ? getResolution(defaultLevel) : auto;\n\n if (option.control) {\n art.controls.update({\n name: 'hls-quality',\n position: 'right',\n html: defaultHtml,\n style: { padding: '0 10px' },\n selector: hls.levels.map((item, index) => {\n return {\n html: getResolution(item),\n level: item.level || index,\n default: defaultLevel === item,\n };\n }),\n onSelect(item) {\n hls.currentLevel = item.level;\n art.loading.show = true;\n return item.html;\n },\n });\n }\n\n if (option.setting) {\n art.setting.update({\n name: 'hls-quality',\n tooltip: defaultHtml,\n html: title,\n icon: image,\n width: 200,\n selector: hls.levels.map((item, index) => {\n return {\n html: getResolution(item),\n level: item.level || index,\n default: defaultLevel === item,\n };\n }),\n onSelect: function (item) {\n hls.currentLevel = item.level;\n art.loading.show = true;\n return item.html;\n },\n });\n }\n }\n\n art.on('ready', update);\n art.on('restart', update);\n\n return {\n name: 'artplayerPluginHlsQuality',\n };\n };\n}\n\nartplayerPluginHlsQuality.env = process.env.NODE_ENV;\nartplayerPluginHlsQuality.version = process.env.APP_VER;\nartplayerPluginHlsQuality.build = process.env.BUILD_DATE;\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginHlsQuality'] = artplayerPluginHlsQuality;\n}\n","module.exports = \"138ab730cddc3409\";","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file +{"mappings":"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","sources":["packages/artplayer-plugin-hls-quality/src/index.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-5cc0713c043de59f.js"],"sourcesContent":["import $quality from 'bundle-text:./quality.svg';\n\nexport default function artplayerPluginHlsQuality(option) {\n return (art) => {\n const { $video } = art.template;\n const { errorHandle } = art.constructor.utils;\n\n function updateQuality(hls) {\n const auto = option.auto || 'Auto';\n const title = option.title || 'Quality';\n\n const getResolution = option.getResolution || ((level) => (level.height || 'Unknown ') + 'P');\n const defaultLevel = hls.levels[hls.currentLevel];\n const defaultHtml = defaultLevel ? getResolution(defaultLevel) : auto;\n\n const selector = hls.levels\n .map((item, index) => {\n return {\n html: getResolution(item),\n level: item.level || index,\n default: defaultLevel === item,\n };\n })\n .sort((a, b) => b.level - a.level);\n\n selector.push({\n html: auto,\n level: -1,\n default: defaultLevel === -1,\n });\n\n const onSelect = (item) => {\n hls.currentLevel = item.level;\n art.loading.show = true;\n art.notice.show = `${title}: ${item.html}`;\n return item.html;\n };\n\n if (option.control) {\n art.controls.update({\n name: 'hls-quality',\n position: 'right',\n html: defaultHtml,\n style: { padding: '0 10px' },\n selector: selector,\n onSelect: onSelect,\n });\n }\n\n if (option.setting) {\n art.setting.update({\n name: 'hls-quality',\n tooltip: defaultHtml,\n html: title,\n icon: $quality,\n width: 200,\n selector: selector,\n onSelect: onSelect,\n });\n }\n }\n\n function updateAudio(hls) {\n //\n }\n\n function update() {\n const hls = art.hls || window.hls;\n errorHandle(hls && hls.media === $video, 'Cannot find instance of HLS from \"art.hls\" or \"window.hls\"');\n updateQuality(hls);\n updateAudio(hls);\n }\n\n art.on('ready', update);\n art.on('restart', update);\n\n return {\n name: 'artplayerPluginHlsQuality',\n update,\n };\n };\n}\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginHlsQuality'] = artplayerPluginHlsQuality;\n}\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n","module.exports = \"64f3d8fb52cab2f0\";"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file diff --git a/packages/artplayer-plugin-hls-quality/package.json b/packages/artplayer-plugin-hls-quality/package.json index 84af305e9..f76f55c3e 100644 --- a/packages/artplayer-plugin-hls-quality/package.json +++ b/packages/artplayer-plugin-hls-quality/package.json @@ -1,6 +1,6 @@ { "license": "MIT", - "version": "2.0.0", + "version": "3.0.0", "name": "artplayer-plugin-hls-quality", "types": "types/artplayer-plugin-hls-quality.d.ts", "description": "Iframe plugin for ArtPlayer", @@ -21,4 +21,4 @@ "video", "player" ] -} +} \ No newline at end of file diff --git a/packages/artplayer-plugin-hls-quality/src/index.js b/packages/artplayer-plugin-hls-quality/src/index.js index fb8c00123..f85e66917 100644 --- a/packages/artplayer-plugin-hls-quality/src/index.js +++ b/packages/artplayer-plugin-hls-quality/src/index.js @@ -1,53 +1,49 @@ -import image from 'bundle-text:./image.svg'; - -function checkVersion(art) { - const { - version, - utils: { errorHandle }, - } = art.constructor; - const arr = version.split('.').map(Number); - const major = arr[0]; - const minor = arr[1] / 100; - errorHandle( - major + minor >= 5, - `Artplayer.js@${version} is not compatible the artplayerPluginHlsQuality@${artplayerPluginHlsQuality.version}. Please update it to version Artplayer.js@5.x.x`, - ); -} +import $quality from 'bundle-text:./quality.svg'; export default function artplayerPluginHlsQuality(option) { return (art) => { - checkVersion(art); - const { $video } = art.template; const { errorHandle } = art.constructor.utils; - function update() { - const hls = art.hls || window.hls; - errorHandle(hls && hls.media === $video, 'Cannot find instance of HLS from "art.hls" or "window.hls"'); + function updateQuality(hls) { const auto = option.auto || 'Auto'; const title = option.title || 'Quality'; + const getResolution = option.getResolution || ((level) => (level.height || 'Unknown ') + 'P'); const defaultLevel = hls.levels[hls.currentLevel]; const defaultHtml = defaultLevel ? getResolution(defaultLevel) : auto; + const selector = hls.levels + .map((item, index) => { + return { + html: getResolution(item), + level: item.level || index, + default: defaultLevel === item, + }; + }) + .sort((a, b) => b.level - a.level); + + selector.push({ + html: auto, + level: -1, + default: defaultLevel === -1, + }); + + const onSelect = (item) => { + hls.currentLevel = item.level; + art.loading.show = true; + art.notice.show = `${title}: ${item.html}`; + return item.html; + }; + if (option.control) { art.controls.update({ name: 'hls-quality', position: 'right', html: defaultHtml, style: { padding: '0 10px' }, - selector: hls.levels.map((item, index) => { - return { - html: getResolution(item), - level: item.level || index, - default: defaultLevel === item, - }; - }), - onSelect(item) { - hls.currentLevel = item.level; - art.loading.show = true; - return item.html; - }, + selector: selector, + onSelect: onSelect, }); } @@ -56,29 +52,31 @@ export default function artplayerPluginHlsQuality(option) { name: 'hls-quality', tooltip: defaultHtml, html: title, - icon: image, + icon: $quality, width: 200, - selector: hls.levels.map((item, index) => { - return { - html: getResolution(item), - level: item.level || index, - default: defaultLevel === item, - }; - }), - onSelect: function (item) { - hls.currentLevel = item.level; - art.loading.show = true; - return item.html; - }, + selector: selector, + onSelect: onSelect, }); } } + function updateAudio(hls) { + // + } + + function update() { + const hls = art.hls || window.hls; + errorHandle(hls && hls.media === $video, 'Cannot find instance of HLS from "art.hls" or "window.hls"'); + updateQuality(hls); + updateAudio(hls); + } + art.on('ready', update); art.on('restart', update); return { name: 'artplayerPluginHlsQuality', + update, }; }; } diff --git a/packages/artplayer-plugin-hls-quality/src/image.svg b/packages/artplayer-plugin-hls-quality/src/quality.svg similarity index 100% rename from packages/artplayer-plugin-hls-quality/src/image.svg rename to packages/artplayer-plugin-hls-quality/src/quality.svg