mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-23 22:01:20 -08:00
Refactor Control class to update control option variables and element references
This commit is contained in:
1 parent
a01782732d
commit
bb3fc27427
4 files changed
+28
-34
No files matched your search
@@ -27,7 +27,7 @@ var art = new Artplayer({
|
|||||||
// Show audios in setting
|
// Show audios in setting
|
||||||
setting: true,
|
setting: true,
|
||||||
// Get the audio name from track
|
// Get the audio name from track
|
||||||
getName: (track) => track.lang,
|
getName: (track) => track.lang.toUpperCase(),
|
||||||
// I18n
|
// I18n
|
||||||
title: 'Audio',
|
title: 'Audio',
|
||||||
auto: 'Auto',
|
auto: 'Auto',
|
||||||
|
|||||||
@@ -164,25 +164,25 @@ function artplayerPluginDashControl(option = {}) {
|
|||||||
const { errorHandle } = art.constructor.utils;
|
const { errorHandle } = art.constructor.utils;
|
||||||
function updateQuality(dash) {
|
function updateQuality(dash) {
|
||||||
const qualities = dash.getBitrateInfoListFor("video");
|
const qualities = dash.getBitrateInfoListFor("video");
|
||||||
if (!qualities.length) return;
|
if (!qualities || !qualities.length) return;
|
||||||
const config = option.quality || {};
|
const config = option.quality || {};
|
||||||
const auto = config.auto || "Auto";
|
const auto = config.auto || "Auto";
|
||||||
const title = config.title || "Quality";
|
const title = config.title || "Quality";
|
||||||
const getName = config.getName || ((level)=>`${level.height}p`);
|
const getName = config.getName || ((level)=>`${level.height}p`);
|
||||||
const currentQuality = dash.getQualityFor("video");
|
const currentQuality = dash.getQualityFor("video");
|
||||||
const defaultLevel = qualities[currentQuality];
|
const currentAuto = dash.getSettings().streaming.abr.autoSwitchBitrate["video"];
|
||||||
const defaultHtml = defaultLevel ? getName(defaultLevel) : auto;
|
const defaultHtml = currentAuto ? auto : getName(qualities[currentQuality]);
|
||||||
const selector = uniqBy(qualities.map((item, index)=>{
|
const selector = uniqBy(qualities.map((item)=>{
|
||||||
return {
|
return {
|
||||||
html: getName(item, index),
|
html: getName(item),
|
||||||
value: index,
|
value: item.qualityIndex,
|
||||||
default: currentQuality === index
|
default: currentQuality === item.qualityIndex && !currentAuto
|
||||||
};
|
};
|
||||||
}), "html").sort((a, b)=>b.value - a.value);
|
}), "html").sort((a, b)=>b.value - a.value);
|
||||||
selector.push({
|
selector.push({
|
||||||
html: auto,
|
html: auto,
|
||||||
value: "auto",
|
value: "auto",
|
||||||
default: dash.getSettings().streaming.abr.autoSwitchBitrate["video"]
|
default: currentAuto
|
||||||
});
|
});
|
||||||
const onSelect = (item)=>{
|
const onSelect = (item)=>{
|
||||||
if (item.value === "auto") dash.updateSettings({
|
if (item.value === "auto") dash.updateSettings({
|
||||||
@@ -242,24 +242,22 @@ function artplayerPluginDashControl(option = {}) {
|
|||||||
}
|
}
|
||||||
function updateAudio(dash) {
|
function updateAudio(dash) {
|
||||||
const audioTracks = dash.getTracksFor("audio");
|
const audioTracks = dash.getTracksFor("audio");
|
||||||
if (!audioTracks.length) return;
|
if (!audioTracks || !audioTracks.length) return;
|
||||||
console.log("audioTracks", audioTracks);
|
|
||||||
const config = option.audio || {};
|
const config = option.audio || {};
|
||||||
const auto = config.auto || "Auto";
|
const auto = config.auto || "Auto";
|
||||||
const title = config.title || "Audio";
|
const title = config.title || "Audio";
|
||||||
const getName = config.getName || ((track)=>track.lang || track.id);
|
const getName = config.getName || ((track)=>track.lang || track.id);
|
||||||
const currentTrack = dash.getCurrentTrackFor("audio");
|
const currentTrack = dash.getCurrentTrackFor("audio") || audioTracks[0];
|
||||||
console.log("currentTrack", currentTrack);
|
|
||||||
const defaultHtml = currentTrack ? getName(currentTrack) : auto;
|
const defaultHtml = currentTrack ? getName(currentTrack) : auto;
|
||||||
const selector = uniqBy(audioTracks.map((item)=>{
|
const selector = uniqBy(audioTracks.map((item)=>{
|
||||||
return {
|
return {
|
||||||
html: getName(item),
|
html: getName(item),
|
||||||
value: item.id,
|
value: item,
|
||||||
default: currentTrack === item
|
default: currentTrack === item
|
||||||
};
|
};
|
||||||
}), "html");
|
}), "html");
|
||||||
const onSelect = (item)=>{
|
const onSelect = (item)=>{
|
||||||
dash.setCurrentTrack(audioTracks.find((track)=>track.id === item.value));
|
dash.setCurrentTrack(item.value);
|
||||||
art.loading.show = true;
|
art.loading.show = true;
|
||||||
art.notice.show = `${title}: ${item.html}`;
|
art.notice.show = `${title}: ${item.html}`;
|
||||||
art.emit("artplayerPluginDashControl:audio", item);
|
art.emit("artplayerPluginDashControl:audio", item);
|
||||||
@@ -296,7 +294,7 @@ function artplayerPluginDashControl(option = {}) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
function update() {
|
function update() {
|
||||||
errorHandle(art.dash?.getVideoElement() === $video, 'Cannot find instance of DASH from "art.dash"');
|
errorHandle(art.dash.getVideoElement() === $video, 'Cannot find instance of DASH from "art.dash"');
|
||||||
updateQuality(art.dash);
|
updateQuality(art.dash);
|
||||||
updateAudio(art.dash);
|
updateAudio(art.dash);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"mappings":"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","sources":["packages/artplayer-plugin-dash-control/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-d9842915446976aa.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-fd32f05dba0c94f1.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["import $quality from 'bundle-text:./quality.svg';\nimport $audio from 'bundle-text:./audio.svg';\n\nfunction uniqBy(array, property) {\n const seen = new Map();\n return array.filter((item) => {\n const key = item[property];\n if (key === undefined) {\n return true;\n }\n return !seen.has(key) && seen.set(key, 1);\n });\n}\n\nexport default function artplayerPluginDashControl(option = {}) {\n return (art) => {\n const { $video } = art.template;\n const { errorHandle } = art.constructor.utilLine truncated
|
{"mappings":"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","sources":["packages/artplayer-plugin-dash-control/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-d9842915446976aa.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-fd32f05dba0c94f1.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["import $quality from 'bundle-text:./quality.svg';\nimport $audio from 'bundle-text:./audio.svg';\n\nfunction uniqBy(array, property) {\n const seen = new Map();\n return array.filter((item) => {\n const key = item[property];\n if (key === undefined) {\n return true;\n }\n return !seen.has(key) && seen.set(key, 1);\n });\n}\n\nexport default function artplayerPluginDashControl(option = {}) {\n return (art) => {\n const { $video } = art.template;\n const { errorHandle } = art.constructor.utils;\n\n function updateQuality(dash) {\Line truncated
|
||||||
@@ -19,22 +19,22 @@ export default function artplayerPluginDashControl(option = {}) {
|
|||||||
|
|
||||||
function updateQuality(dash) {
|
function updateQuality(dash) {
|
||||||
const qualities = dash.getBitrateInfoListFor('video');
|
const qualities = dash.getBitrateInfoListFor('video');
|
||||||
if (!qualities.length) return;
|
if (!qualities || !qualities.length) return;
|
||||||
|
|
||||||
const config = option.quality || {};
|
const config = option.quality || {};
|
||||||
const auto = config.auto || 'Auto';
|
const auto = config.auto || 'Auto';
|
||||||
const title = config.title || 'Quality';
|
const title = config.title || 'Quality';
|
||||||
const getName = config.getName || ((level) => `${level.height}p`);
|
const getName = config.getName || ((level) => `${level.height}p`);
|
||||||
const currentQuality = dash.getQualityFor('video');
|
const currentQuality = dash.getQualityFor('video');
|
||||||
const defaultLevel = qualities[currentQuality];
|
const currentAuto = dash.getSettings().streaming.abr.autoSwitchBitrate['video'];
|
||||||
const defaultHtml = defaultLevel ? getName(defaultLevel) : auto;
|
const defaultHtml = currentAuto ? auto : getName(qualities[currentQuality]);
|
||||||
|
|
||||||
const selector = uniqBy(
|
const selector = uniqBy(
|
||||||
qualities.map((item, index) => {
|
qualities.map((item) => {
|
||||||
return {
|
return {
|
||||||
html: getName(item, index),
|
html: getName(item),
|
||||||
value: index,
|
value: item.qualityIndex,
|
||||||
default: currentQuality === index,
|
default: currentQuality === item.qualityIndex && !currentAuto,
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
'html',
|
'html',
|
||||||
@@ -43,7 +43,7 @@ export default function artplayerPluginDashControl(option = {}) {
|
|||||||
selector.push({
|
selector.push({
|
||||||
html: auto,
|
html: auto,
|
||||||
value: 'auto',
|
value: 'auto',
|
||||||
default: dash.getSettings().streaming.abr.autoSwitchBitrate['video'],
|
default: currentAuto,
|
||||||
});
|
});
|
||||||
|
|
||||||
const onSelect = (item) => {
|
const onSelect = (item) => {
|
||||||
@@ -110,24 +110,20 @@ export default function artplayerPluginDashControl(option = {}) {
|
|||||||
|
|
||||||
function updateAudio(dash) {
|
function updateAudio(dash) {
|
||||||
const audioTracks = dash.getTracksFor('audio');
|
const audioTracks = dash.getTracksFor('audio');
|
||||||
if (!audioTracks.length) return;
|
if (!audioTracks || !audioTracks.length) return;
|
||||||
|
|
||||||
console.log('audioTracks', audioTracks);
|
|
||||||
|
|
||||||
const config = option.audio || {};
|
const config = option.audio || {};
|
||||||
const auto = config.auto || 'Auto';
|
const auto = config.auto || 'Auto';
|
||||||
const title = config.title || 'Audio';
|
const title = config.title || 'Audio';
|
||||||
const getName = config.getName || ((track) => track.lang || track.id);
|
const getName = config.getName || ((track) => track.lang || track.id);
|
||||||
const currentTrack = dash.getCurrentTrackFor('audio');
|
const currentTrack = dash.getCurrentTrackFor('audio') || audioTracks[0];
|
||||||
console.log('currentTrack', currentTrack);
|
|
||||||
|
|
||||||
const defaultHtml = currentTrack ? getName(currentTrack) : auto;
|
const defaultHtml = currentTrack ? getName(currentTrack) : auto;
|
||||||
|
|
||||||
const selector = uniqBy(
|
const selector = uniqBy(
|
||||||
audioTracks.map((item) => {
|
audioTracks.map((item) => {
|
||||||
return {
|
return {
|
||||||
html: getName(item),
|
html: getName(item),
|
||||||
value: item.id,
|
value: item,
|
||||||
default: currentTrack === item,
|
default: currentTrack === item,
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
@@ -135,7 +131,7 @@ export default function artplayerPluginDashControl(option = {}) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const onSelect = (item) => {
|
const onSelect = (item) => {
|
||||||
dash.setCurrentTrack(audioTracks.find((track) => track.id === item.value));
|
dash.setCurrentTrack(item.value);
|
||||||
art.loading.show = true;
|
art.loading.show = true;
|
||||||
art.notice.show = `${title}: ${item.html}`;
|
art.notice.show = `${title}: ${item.html}`;
|
||||||
art.emit('artplayerPluginDashControl:audio', item);
|
art.emit('artplayerPluginDashControl:audio', item);
|
||||||
@@ -177,7 +173,7 @@ export default function artplayerPluginDashControl(option = {}) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function update() {
|
function update() {
|
||||||
errorHandle(art.dash?.getVideoElement() === $video, 'Cannot find instance of DASH from "art.dash"');
|
errorHandle(art.dash.getVideoElement() === $video, 'Cannot find instance of DASH from "art.dash"');
|
||||||
updateQuality(art.dash);
|
updateQuality(art.dash);
|
||||||
updateAudio(art.dash);
|
updateAudio(art.dash);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user