2024 lines
98 KiB
JavaScript
2024 lines
98 KiB
JavaScript
/*
|
||
* XmlDigitalTeaching v0.0.1
|
||
* Copyright ©Tue May 27 2025 20:10:29 GMT+0800 (中国标准时间) smile
|
||
* Released under the ISC License.
|
||
*/
|
||
var playIcon = "data:image/png;base64,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";
|
||
|
||
var pauseIcon = "data:image/png;base64,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";
|
||
|
||
var audioIcon = "data:image/png;base64,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";
|
||
|
||
var coverLocal = "5d9cf0a5d487a818.png";
|
||
|
||
var playRepeat = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAaCAMAAADhRa4NAAAAAXNSR0IArs4c6QAAAi5QTFRFAAAAAID/QID/M5n/JJL/SZL/TYD/O4nrQJ/vR47xQIz/OovoQ5DpPYXrPYX1QJLtPo3tRJDuOI//QI/vOpL4QpLwOZzxQI7qRYr4Po/sPo/zPYztPZL5QIvuQJHuOZL1RI3vPYrwQYzwOY7xQo7sQo3tQpHtPY7vQY7zI4XzPI/wQI/sQZDtSpHtP4/uPo3nPo3xQYvuRoDuQY3vQIn1QI/tOpfxP4zvQY3sKrv1MYv1QJDtQI/tPpLwQJDxQo/sQI7tQYzuPI7vQZDvQY3xQI7sM6nyQY3sQJLvPpLtQI/tQI/vRIntQI7uQI7vQY7uQY7tQY3tQo7tPYzxP47wQpDuRJDxQo7tQo7vQI3tQ5PtRI3uQJXxQYvxQZDxQJDuQ5DsQI7uPozsOpPtQY7tQI7tQI7uQI/uQ43sQY7tQI/tQY7tQ43vQ4/tQY7tQovsQI/tQY7uQI/wQo7uQo7tQI/uQYztQ43vQYvtQY7tQI7qQI7vQY3uQo/tQI/rQY7uQY7tQo7uP43vQI3vQY7tQY7rQpDvQY7tQY/tQY7tQY7vQY7sQo7tQ5DrQY7sQY7tQo7tQY7tQI3sQI7qQI7sQI/qQI/tQI/uQY3rQY3sQY3tQY7rQY7sQY7tQY/sQY/tQozsQo3pQo3qQo3sQo3tQo7rQo7sQo7tQo7uQo/qQo/sQo/tQ4nrQ4vuQ4zsQ43sQ47qQ47rQ47sQ4/qQ4/sRIvrRobsSI/qS3/qS5DpVRNwpwAAAJJ0Uk5TAAIEBQcHCg0QEhQWFxkZHB0eICAjIyQkJSkpKiosLDExMjM2Njo6Pz9BRERHSElKSktMTlBUXV1eYmNjZGdsbXN2fH6Ch4iJjI+Pj4+Tk5WZmpqgpaWmq6usrq+wsLGzs7a4ubm8vsLHyMvLy8vMzc/V1tbZ3N3e4ePm5ubp6+vs7e7u8PHy8/T29vj5+vz8/P6b5lOEAAABY0lEQVQYGY3BhztVYRwH8C+XsiIjM3tlFZGSPcsoM5SVUXZ2ocgOmSUj76+Lm3OsZEb/HR5d93iPp8fnAyn3+JzyqlfpoddxoeC6n0QkkJJYtgNkHCqVIpU9CguMTG2gLywFHL+Z3wuPLXHqdpmgKlVAyuuv0GgFjYjpjRpIXJlgFbqQunv49Qk08nbfgxOy+OsW1DzWlzzBK9ivh5pzfyFkDH4o7fFfr/8k4J/7VyFz7V7sQr7eA5x4xrpNwHsx16V820o49lIg6jIHJ+ibSMQ+AcjcpkkS+0zAubNGRC4A3k2VjH8cITvw/FfGXHDM2MZU6HF1gpy+OU4pBma9IeemgFrGchNkbrAOqFnQwUPwauff4MzT5VEznBcn7DlCo32r1xZSUcSiIWE9vPrZF2e0k1SbuTjnZqdIxQFaOGEU1bYznQiO4XNSfR+qTkvOaiaRPoRDzqdokIgYI2qJ0cGlHQE0EGWmZ0WkvQAAAABJRU5ErkJggg==";
|
||
|
||
var playOnce = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAgCAMAAAA2a+hwAAAAAXNSR0IArs4c6QAAAlJQTFRFAAAAgID/QID/QID/OY7jRovoO4nrSZLtRIjuPIfwQIzyQJnySZLzRpfzQ4X0QIrqQo7sPo3tEN73RI/wPI3yQZDrPo/sQ4ztQ4zzO4jtQY7tPo7uPYvuQI/vOY3vPo3vPIzrQZHwNqL1QI7wRYTrK4b2QY/uP47uR47yQIvvP43rQI/wP5DwSXz0QozuPYvxQY/uQI3uQY3vQI/yQZDzQpDwQ472QI3uPIn3P4vqQo7vQo3tQI3uQJDuQI7uQI3uQI7sQo7sQpHxQY3sPo7vQI7tQI/xQY7tQY3tQY3vPo7vQo/rP5HuQY3uQJDxQorsQo7sQo7vOI3xQovrQo3rQY7tQY3tQI7tQI3sPY/wN5vvQo7vNKPyQY7tQ43tQY/uQorsQI7sQY3uPJfwQI7wPpPuP4/vQY7tTnTsRJPxP47vQYzsPZDvP43uQo7sO5jvQY3uPZDwQ4ftQI7tQo3uQY7uQo7uQY7tQY7tQ43wQY7tQI3tQI7uQI7tQI/wP4zuQ5DtQY7tRJHsQI7tQY7tQI7tQY7uQI7uQY3uQo7tPpHtQI7tQY/sQY7sQY/tQY7tQY7tQY3sQY/uQI7tQY7tQo7uQo/uSY7tQY/tTXnqQY3tQY7tQY7tQY7tQY7tQY7uQY7tPZXtQY3tQY7tQY7tQY7tQo/tP5LqQI/rQI/sQY3sQY7rQY7sQY7tQY/rQY/sQY/tQZDtQozsQo3rQo3sQo3tQo7qQo7rQo7sQo7tQo/tQ4vsQ4zrQ47qQ47sRIfrRInsRI/rRI/sRYnsR4TqR4fqvnKd/wAAAKd0Uk5TAAIECAkLDQ4PERQUFRYXGBsdHyImJykqKisrLS4wMTEzMzQ0NDs7PT1AQURFRklLS0xOUFNVWFxdYWFlZ2doa2xsbW5vb3BxcnJzdHl5fHx8fH+AgIGCg4iJjIyOjpGSkpOUlZeZm56goaKio6OjpKaqqq6vsLO0t7i5vL7GxsfHyMjLy8zN0tTW2trc4ubn6erq7Ozs7Ozu7vHz9Pb3+Pn6+/v9/v6utNnsAAABnklEQVQYGY3BhVsTcQDH4c8QRbCwu7tbVFQsPLu7u3t2YRfYXRhg7r4GMnYzMPm/nLf7nTjkeXxf/lv7I3OoVP+IllCpvg80l39rNiTrkrQymQpqTD4rV7QriabkRx3tnXdP9tQqkDGAP1IPKXw6qy7ZciYCqbLnY6RdkDKBUVI2MUlL39jr8eQV3elATKdTI4kb+6FsMa7NZY/rkWDw8589ielS8qU3FWwquRoAcu0N+Opg3AxNgFalr2rhSd/3qBuece8vwszvOXjGFEiz8dQOC46GRuNK3iMVaDzG+TBct3vgSpGGrpOFse0rPH3blLhGrdkqC2P5OyhUQ3y7ZWEs/AG31RlfUBbGmiLIdQbiC8rC2P8SNkaW4QvKwrgfhkGhu/h2aRKedsVhqGnb/TAOazqend8OAit0BWP4ycbEdXxR2hJIeRJZS6LArc87+K2Xo2n8Len46xsBXAs+fVxFeU3OhJ61wTNL0XPdMarOkPOwLb7M/GIdGNE8rVr1+n1WX3OcYw0oJ32LnKhcjvKGkaDFohOFirm8PQPPL6EvjEOwGD5qAAAAAElFTkSuQmCC";
|
||
|
||
function parseLrc(lrc_s) {
|
||
if (lrc_s) {
|
||
lrc_s = lrc_s.replace(/([^\]^\n])\[/g, (match, p1) => p1 + '\n[');
|
||
const lyric = lrc_s.split('\n');
|
||
const lrc = [];
|
||
const lyricLen = lyric.length;
|
||
for (let i = 0; i < lyricLen; i++) {
|
||
// match lrc time
|
||
const lrcTimes = lyric[i].match(/\[(\d{2}):(\d{2})(\.(\d{2,3}))?]/g);
|
||
// match lrc text
|
||
const lrcText = lyric[i].replace(/.*\[(\d{2}):(\d{2})(\.(\d{2,3}))?]/g, '').replace(/<(\d{2}):(\d{2})(\.(\d{2,3}))?>/g, '').replace(/^\s+|\s+$/g, '');
|
||
if (lrcTimes) {
|
||
// handle multiple time tag
|
||
const timeLen = lrcTimes.length;
|
||
for (let j = 0; j < timeLen; j++) {
|
||
const oneTime = /\[(\d{2}):(\d{2})(\.(\d{2,3}))?]/.exec(lrcTimes[j]);
|
||
const min2sec = oneTime[1] * 60;
|
||
const sec2sec = parseInt(oneTime[2]);
|
||
const msec2sec = oneTime[4] ? parseInt(oneTime[4]) / ((oneTime[4] + '').length === 2 ? 100 : 1000) : 0;
|
||
const lrcTime = min2sec + sec2sec + msec2sec;
|
||
lrc.push([lrcTime, lrcText]);
|
||
}
|
||
}
|
||
}
|
||
// sort by time
|
||
lrc.sort((a, b) => a[0] - b[0]);
|
||
return lrc;
|
||
} else {
|
||
return [];
|
||
}
|
||
}
|
||
|
||
//
|
||
var script$3 = {
|
||
props: {
|
||
currentMusic: {
|
||
type: Object,
|
||
required: true
|
||
},
|
||
playStat: {
|
||
type: Object,
|
||
required: true
|
||
}
|
||
},
|
||
data() {
|
||
return {
|
||
displayLrc: '',
|
||
currentLineIndex: 0
|
||
};
|
||
},
|
||
computed: {
|
||
lrcLines() {
|
||
return parseLrc(this.displayLrc);
|
||
},
|
||
currentLine() {
|
||
if (this.currentLineIndex > this.lrcLines.length - 1) {
|
||
return null;
|
||
}
|
||
return this.lrcLines[this.currentLineIndex];
|
||
},
|
||
transformStyle() {
|
||
// transform: translateY(0); -webkit-transform: translateY(0);
|
||
return {
|
||
transform: `translateY(${-this.currentLineIndex * 16}px)`,
|
||
webkitTransform: `translateY(${-this.currentLineIndex * 16}px)`
|
||
};
|
||
}
|
||
},
|
||
methods: {
|
||
applyLrc(lrc) {
|
||
// if (/^https?:\/\//.test(lrc)) {
|
||
// this.fetchLrc(lrc)
|
||
// } else {
|
||
// this.displayLrc = lrc
|
||
// }
|
||
this.fetchLrc(lrc);
|
||
},
|
||
fetchLrc(src) {
|
||
fetch(src).then(response => response.text()).then(lrc => {
|
||
this.displayLrc = lrc;
|
||
});
|
||
},
|
||
hideLrc() {
|
||
this.displayLrc = '';
|
||
}
|
||
},
|
||
watch: {
|
||
currentMusic: {
|
||
deep: true,
|
||
immediate: true,
|
||
handler(music) {
|
||
this.currentLineIndex = 0;
|
||
if (music.lrc) {
|
||
this.applyLrc(music.lrc);
|
||
} else {
|
||
this.hideLrc();
|
||
}
|
||
}
|
||
},
|
||
'playStat.playedTime'(playedTime) {
|
||
for (let i = 0; i < this.lrcLines.length; i++) {
|
||
const line = this.lrcLines[i];
|
||
const nextLine = this.lrcLines[i + 1];
|
||
if (playedTime >= line[0] && (!nextLine || playedTime < nextLine[0])) {
|
||
this.currentLineIndex = i;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
};
|
||
|
||
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
|
||
if (typeof shadowMode !== 'boolean') {
|
||
createInjectorSSR = createInjector;
|
||
createInjector = shadowMode;
|
||
shadowMode = false;
|
||
}
|
||
// Vue.extend constructor export interop.
|
||
const options = typeof script === 'function' ? script.options : script;
|
||
// render functions
|
||
if (template && template.render) {
|
||
options.render = template.render;
|
||
options.staticRenderFns = template.staticRenderFns;
|
||
options._compiled = true;
|
||
// functional template
|
||
if (isFunctionalTemplate) {
|
||
options.functional = true;
|
||
}
|
||
}
|
||
// scopedId
|
||
if (scopeId) {
|
||
options._scopeId = scopeId;
|
||
}
|
||
let hook;
|
||
if (moduleIdentifier) {
|
||
// server build
|
||
hook = function (context) {
|
||
// 2.3 injection
|
||
context = context ||
|
||
// cached call
|
||
this.$vnode && this.$vnode.ssrContext ||
|
||
// stateful
|
||
this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional
|
||
// 2.2 with runInNewContext: true
|
||
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
|
||
context = __VUE_SSR_CONTEXT__;
|
||
}
|
||
// inject component styles
|
||
if (style) {
|
||
style.call(this, createInjectorSSR(context));
|
||
}
|
||
// register component module identifier for async chunk inference
|
||
if (context && context._registeredComponents) {
|
||
context._registeredComponents.add(moduleIdentifier);
|
||
}
|
||
};
|
||
// used by ssr in case component is cached and beforeCreate
|
||
// never gets called
|
||
options._ssrRegister = hook;
|
||
} else if (style) {
|
||
hook = shadowMode ? function (context) {
|
||
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
|
||
} : function (context) {
|
||
style.call(this, createInjector(context));
|
||
};
|
||
}
|
||
if (hook) {
|
||
if (options.functional) {
|
||
// register for functional component in vue file
|
||
const originalRender = options.render;
|
||
options.render = function renderWithStyleInjection(h, context) {
|
||
hook.call(context);
|
||
return originalRender(h, context);
|
||
};
|
||
} else {
|
||
// inject component registration as beforeCreate hook
|
||
const existing = options.beforeCreate;
|
||
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
|
||
}
|
||
}
|
||
return script;
|
||
}
|
||
|
||
/* script */
|
||
const __vue_script__$3 = script$3;
|
||
/* template */
|
||
var __vue_render__$3 = function () {
|
||
var _vm = this;
|
||
var _h = _vm.$createElement;
|
||
var _c = _vm._self._c || _h;
|
||
return _c("div", { staticClass: "aplayer-lrc" }, [
|
||
_c(
|
||
"div",
|
||
{ staticClass: "aplayer-lrc-contents", style: _vm.transformStyle },
|
||
_vm._l(_vm.lrcLines, function (line, index) {
|
||
return _c(
|
||
"p",
|
||
{
|
||
key: index,
|
||
class: { "aplayer-lrc-current": index === _vm.currentLineIndex },
|
||
},
|
||
[_vm._v("\n " + _vm._s(line[1]) + "\n ")]
|
||
)
|
||
}),
|
||
0
|
||
),
|
||
])
|
||
};
|
||
var __vue_staticRenderFns__$3 = [];
|
||
__vue_render__$3._withStripped = true;
|
||
|
||
/* style */
|
||
const __vue_inject_styles__$3 = undefined;
|
||
/* scoped */
|
||
const __vue_scope_id__$3 = undefined;
|
||
/* module identifier */
|
||
const __vue_module_identifier__$3 = undefined;
|
||
/* functional template */
|
||
const __vue_is_functional_template__$3 = false;
|
||
/* style inject */
|
||
|
||
/* style inject SSR */
|
||
|
||
/* style inject shadow dom */
|
||
|
||
|
||
|
||
const __vue_component__$3 = /*#__PURE__*/normalizeComponent(
|
||
{ render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },
|
||
__vue_inject_styles__$3,
|
||
__vue_script__$3,
|
||
__vue_scope_id__$3,
|
||
__vue_is_functional_template__$3,
|
||
__vue_module_identifier__$3,
|
||
false,
|
||
undefined,
|
||
undefined,
|
||
undefined
|
||
);
|
||
|
||
//
|
||
var script$2 = {
|
||
name: 'XmlAudioModalPlayer',
|
||
components: {
|
||
lyrics: __vue_component__$3
|
||
},
|
||
props: {
|
||
//模式:preview 预览 (默认),editor 编辑
|
||
mode: {
|
||
type: String,
|
||
default: 'editor'
|
||
},
|
||
playStyle: {
|
||
type: String,
|
||
default: 'yuan-wen'
|
||
},
|
||
styleMode: {
|
||
type: String,
|
||
default: 'A'
|
||
},
|
||
url: {
|
||
type: String,
|
||
default: '',
|
||
require: true
|
||
},
|
||
title: {
|
||
type: String,
|
||
default: '音频文件'
|
||
},
|
||
coverImageUrl: {
|
||
type: String,
|
||
default: ''
|
||
},
|
||
//进度是否能控制
|
||
scheduleControl: {
|
||
type: String,
|
||
default: ''
|
||
},
|
||
loop: {
|
||
type: Boolean,
|
||
default: true
|
||
},
|
||
playMode: {
|
||
type: String,
|
||
default: 'xun-huan'
|
||
},
|
||
content: {
|
||
type: String,
|
||
default: '暂无简介'
|
||
},
|
||
targerLink: {
|
||
type: String,
|
||
default: ''
|
||
},
|
||
subTitle: {
|
||
type: Boolean,
|
||
default: false
|
||
},
|
||
subTitleSrc: {
|
||
type: String,
|
||
default: ''
|
||
},
|
||
subTitleSrcName: {
|
||
type: String,
|
||
default: ''
|
||
}
|
||
},
|
||
computed: {
|
||
videoAndMusicStop() {
|
||
let playState = sessionStorage.getItem('SET_PLAY_STATE');
|
||
return playState;
|
||
},
|
||
playModeIconSrc() {
|
||
let srcMap = {
|
||
'xun-huan': playRepeat,
|
||
'dan-ci': playOnce
|
||
};
|
||
return srcMap[this.playMode];
|
||
}
|
||
},
|
||
watch: {
|
||
url: {
|
||
handler(newVal) {
|
||
let _this = this;
|
||
this.isPlay = false;
|
||
let ua = navigator.userAgent;
|
||
/micromessenger/.test(ua.toLowerCase());
|
||
let isIOS = !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
|
||
if (isIOS && newVal) {
|
||
try {
|
||
this.$nextTick(() => {
|
||
_this.$refs.musicAudio.muted = true;
|
||
const playPromise = _this.$refs.musicAudio.play();
|
||
_this.$refs.musicAudio.muted = false;
|
||
if (playPromise) {
|
||
playPromise.then(() => {
|
||
_this.$refs.musicAudio.pause();
|
||
}).catch(error => {
|
||
_this.$refs.musicAudio.pause();
|
||
console.log(error);
|
||
});
|
||
}
|
||
});
|
||
} catch (error) {
|
||
console.log(error);
|
||
this.$message({
|
||
type: 'warning',
|
||
message: error,
|
||
duration: 5000
|
||
});
|
||
}
|
||
}
|
||
},
|
||
immediate: true
|
||
},
|
||
subTitleSrc: {
|
||
handler(newVal) {
|
||
this.audio.title = this.title;
|
||
this.audio.src = this.url;
|
||
this.audio.pic = this.coverImageUrl || coverLocal;
|
||
this.audio.lrc = newVal;
|
||
},
|
||
immediate: true
|
||
},
|
||
videoAndMusicStop(val) {
|
||
console.log('watch', val);
|
||
let currentPlayStamp = val || '--';
|
||
if (`${this.url}__playTimeStamp__${this.lastOperateTimeStamp}` !== currentPlayStamp) {
|
||
this.musicAudio.pause();
|
||
}
|
||
}
|
||
},
|
||
data() {
|
||
return {
|
||
playIcon,
|
||
pauseIcon,
|
||
audioIcon,
|
||
coverLocal,
|
||
isPlay: false,
|
||
playTime: 0,
|
||
playDuration: '00:00',
|
||
playCurrentTime: '00:00',
|
||
totalDuration: 0,
|
||
link: {
|
||
type: String,
|
||
default: ''
|
||
},
|
||
//链接地址
|
||
lastOperateTimeStamp: '',
|
||
musicAudio: null,
|
||
manualPlay: false,
|
||
audio: {
|
||
title: '',
|
||
artist: '',
|
||
src: '',
|
||
pic: '',
|
||
lrc: ''
|
||
},
|
||
playStat: {
|
||
duration: 0,
|
||
loadedTime: 0,
|
||
playedTime: 0
|
||
}
|
||
};
|
||
},
|
||
mounted() {
|
||
// 加载完毕后,先获取<video>标签DOM对象
|
||
this.musicAudio = this.$refs.musicAudio;
|
||
// this.videoContainer = this.$refs.videoContainer
|
||
if (this.mode === 'preview' && this.playStyle === 'yuan-wen') {
|
||
this.$emit('resetTimeUpdate');
|
||
}
|
||
},
|
||
methods: {
|
||
changeDuration() {
|
||
this.$nextTick(() => {
|
||
this.playDuration = this.timeFormat(this.$refs.musicAudio.duration);
|
||
this.totalDuration = this.$refs.musicAudio.duration;
|
||
});
|
||
},
|
||
//将单位为秒的的时间转换成mm:ss的形式
|
||
timeFormat(num) {
|
||
let minute = parseInt(num / 60);
|
||
let second = parseInt(num % 60);
|
||
minute = minute >= 10 ? minute : `0${minute}`;
|
||
second = second >= 10 ? second : `0${second}`;
|
||
return `${minute}:${second}`;
|
||
},
|
||
play() {
|
||
// if (this.mode==='editor') {
|
||
// this.$message.warning('音频仅支持在预览模式下播放')
|
||
// return
|
||
// }
|
||
if (this.playStyle === 'yuan-wen') {
|
||
this.doPlay();
|
||
}
|
||
if (this.playStyle === 'tiao-zhuan') {
|
||
if (this.targerLink) {
|
||
// window.location.href=this.targerLink
|
||
window.open(this.targerLink, '_blank');
|
||
} else {
|
||
this.$message.warning('获取资源链接失败,请检查链接地址');
|
||
}
|
||
}
|
||
if (this.playStyle === 'tan-chuang') {
|
||
this.$emit('showDialog', {
|
||
url: this.url,
|
||
title: this.title,
|
||
coverFileUrl: this.coverImageUrl
|
||
});
|
||
}
|
||
},
|
||
doPlay() {
|
||
console.log('暂停');
|
||
let audio = document.querySelectorAll('audio');
|
||
audio.forEach(i => i.pause());
|
||
let video = document.querySelectorAll('video');
|
||
if (video && video.length) {
|
||
video.forEach(i => i.pause());
|
||
}
|
||
if (this.isPlay) {
|
||
this.$refs.musicAudio.pause();
|
||
this.isPlay = !this.isPlay;
|
||
} else {
|
||
this.manualPlay = true;
|
||
this.$refs.musicAudio.play().then(() => {
|
||
this.isPlay = !this.isPlay;
|
||
let timeStamp = new Date().getTime();
|
||
this.lastOperateTimeStamp = timeStamp;
|
||
let playStamp = `${this.url}__playTimeStamp__${timeStamp}`;
|
||
sessionStorage.setItem('SET_PLAY_STATE', playStamp); //存储
|
||
}).catch(error => {
|
||
this.$message.warning('无效音频资源,请检查资源地址');
|
||
console.log('音频播放catch', error);
|
||
});
|
||
}
|
||
// this.isPlay ? this.$refs.musicAudio.pause() : this.$refs.musicAudio.play()
|
||
// this.isPlay = !this.isPlay
|
||
// let timeStamp = new Date().getTime()
|
||
// this.lastOperateTimeStamp = timeStamp
|
||
// let playStamp = `${this.url}__playTimeStamp__${timeStamp}`
|
||
// // !this.isPlay && this.$store.commit('leaflet/SET_PLAY_STATE', playStamp)
|
||
// // this.$store.commit('leaflet/SET_PLAY_STATE', playStamp)
|
||
// sessionStorage.setItem('SET_PLAY_STATE', playStamp) //存储
|
||
},
|
||
updateTime(e) {
|
||
this.playTime = this.$refs.musicAudio.currentTime;
|
||
this.playStat.playedTime = this.$refs.musicAudio.currentTime;
|
||
this.playCurrentTime = this.timeFormat(this.$refs.musicAudio.currentTime);
|
||
if (this.playTime >= this.totalDuration) {
|
||
this.isPlay = false;
|
||
}
|
||
this.$emit('timeUpdate', {
|
||
event: e,
|
||
time: this.$refs.musicAudio.currentTime
|
||
});
|
||
},
|
||
changeTime(val) {
|
||
this.$refs.musicAudio.currentTime = val;
|
||
},
|
||
onPlay() {
|
||
if (!this.manualPlay) {
|
||
this.$refs.musicAudio.pause();
|
||
}
|
||
}
|
||
}
|
||
};
|
||
|
||
/* script */
|
||
const __vue_script__$2 = script$2;
|
||
|
||
/* template */
|
||
var __vue_render__$2 = function () {
|
||
var _vm = this;
|
||
var _h = _vm.$createElement;
|
||
var _c = _vm._self._c || _h;
|
||
return _c("div", { staticClass: "xml-audio-player" }, [
|
||
_c("div", { staticClass: "audio-cover" }, [
|
||
_c(
|
||
"div",
|
||
{ staticClass: "square-wrapper" },
|
||
[
|
||
_c("el-image", {
|
||
attrs: {
|
||
src: _vm.coverImageUrl ? _vm.coverImageUrl : _vm.coverLocal,
|
||
alt: "",
|
||
},
|
||
}),
|
||
_vm._v(" "),
|
||
_c("div", { staticClass: "play-button style-a" }, [
|
||
_c("img", {
|
||
staticClass: "button-image",
|
||
attrs: { src: _vm.isPlay ? _vm.pauseIcon : _vm.playIcon },
|
||
on: {
|
||
click: function ($event) {
|
||
$event.stopPropagation();
|
||
return _vm.play.apply(null, arguments)
|
||
},
|
||
},
|
||
}),
|
||
]),
|
||
],
|
||
1
|
||
),
|
||
]),
|
||
_vm._v(" "),
|
||
_c("div", { staticClass: "audio-player-control" }, [
|
||
_c(
|
||
"div",
|
||
{
|
||
class: [
|
||
"audio-player-title",
|
||
"audio-player-title--modal",
|
||
_vm.mode == "preview" && _vm.title.length >= 16 ? "preview" : "",
|
||
],
|
||
},
|
||
[
|
||
_c(
|
||
"div",
|
||
{
|
||
staticClass: "scroll-text",
|
||
style:
|
||
_vm.mode == "preview" && _vm.title.length >= 16
|
||
? {
|
||
animation:
|
||
"fadeNum " +
|
||
_vm.title.length / 3 +
|
||
"s linear infinite backwards",
|
||
}
|
||
: "",
|
||
},
|
||
[_vm._v("\n " + _vm._s(_vm.title) + "\n ")]
|
||
),
|
||
_vm._v(" "),
|
||
_vm.subTitle
|
||
? _c("lyrics", {
|
||
staticStyle: { "margin-top": "15px" },
|
||
attrs: {
|
||
"current-music": _vm.audio,
|
||
"play-stat": _vm.playStat,
|
||
},
|
||
})
|
||
: _vm._e(),
|
||
],
|
||
1
|
||
),
|
||
_vm._v(" "),
|
||
_c("div", { staticClass: "audio-controls" }, [
|
||
_c("div", { staticClass: "audio-controls__handler" }, [
|
||
_c("div", { staticClass: "play-times" }, [
|
||
_c("div", { staticClass: "current-time" }, [
|
||
_vm._v(_vm._s(_vm.playCurrentTime)),
|
||
]),
|
||
_vm._v(" "),
|
||
_c(
|
||
"div",
|
||
{ staticClass: "progress" },
|
||
[
|
||
_c("el-slider", {
|
||
attrs: {
|
||
max: _vm.totalDuration,
|
||
disabled: _vm.scheduleControl !== "yes",
|
||
"show-tooltip": false,
|
||
},
|
||
on: { change: _vm.changeTime },
|
||
model: {
|
||
value: _vm.playTime,
|
||
callback: function ($$v) {
|
||
_vm.playTime = $$v;
|
||
},
|
||
expression: "playTime",
|
||
},
|
||
}),
|
||
],
|
||
1
|
||
),
|
||
_vm._v(" "),
|
||
_c("div", { staticClass: "total-time" }, [
|
||
_vm._v(_vm._s(_vm.playDuration)),
|
||
]),
|
||
]),
|
||
]),
|
||
]),
|
||
_vm._v(" "),
|
||
_vm.content
|
||
? _c("div", { staticClass: "content-block" }, [
|
||
_vm._m(0),
|
||
_vm._v(" "),
|
||
_c("div", { staticClass: "content" }, [
|
||
_vm._v(_vm._s(_vm.content || "暂无")),
|
||
]),
|
||
])
|
||
: _vm._e(),
|
||
]),
|
||
_vm._v(" "),
|
||
_c("audio", {
|
||
ref: "musicAudio",
|
||
staticClass: "audio-component",
|
||
attrs: {
|
||
controls: "",
|
||
preload: "auto",
|
||
src: _vm.url,
|
||
loop: _vm.loop,
|
||
link: _vm.link,
|
||
},
|
||
on: {
|
||
canplay: _vm.changeDuration,
|
||
timeupdate: _vm.updateTime,
|
||
pause: function ($event) {
|
||
_vm.isPlay = false;
|
||
},
|
||
play: _vm.onPlay,
|
||
},
|
||
}),
|
||
])
|
||
};
|
||
var __vue_staticRenderFns__$2 = [
|
||
function () {
|
||
var _vm = this;
|
||
var _h = _vm.$createElement;
|
||
var _c = _vm._self._c || _h;
|
||
return _c("div", { staticClass: "label" }, [_c("span", [_vm._v("简介")])])
|
||
},
|
||
];
|
||
__vue_render__$2._withStripped = true;
|
||
|
||
/* style */
|
||
const __vue_inject_styles__$2 = undefined;
|
||
/* scoped */
|
||
const __vue_scope_id__$2 = undefined;
|
||
/* module identifier */
|
||
const __vue_module_identifier__$2 = undefined;
|
||
/* functional template */
|
||
const __vue_is_functional_template__$2 = false;
|
||
/* style inject */
|
||
|
||
/* style inject SSR */
|
||
|
||
/* style inject shadow dom */
|
||
|
||
|
||
|
||
const __vue_component__$2 = /*#__PURE__*/normalizeComponent(
|
||
{ render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },
|
||
__vue_inject_styles__$2,
|
||
__vue_script__$2,
|
||
__vue_scope_id__$2,
|
||
__vue_is_functional_template__$2,
|
||
__vue_module_identifier__$2,
|
||
false,
|
||
undefined,
|
||
undefined,
|
||
undefined
|
||
);
|
||
|
||
//
|
||
var script$1 = {
|
||
name: 'XmlMusicRender',
|
||
components: {
|
||
XmlAudioModalPlayer: __vue_component__$2
|
||
},
|
||
props: {
|
||
//模式:preview 预览 (默认),editor 编辑
|
||
mode: {
|
||
type: String,
|
||
default: 'editor'
|
||
},
|
||
//属性中传递过来的块儿数据
|
||
pBlockData: {},
|
||
//块儿数据名
|
||
blockDataName: String,
|
||
//页面类型,取值h5、pc、pad
|
||
pageType: {
|
||
type: String,
|
||
default: 'h5'
|
||
},
|
||
resourceBasisPath: {
|
||
type: String,
|
||
default: ''
|
||
},
|
||
//当前所处组的规则
|
||
currentRule: {
|
||
type: Object,
|
||
default: function () {
|
||
return {};
|
||
}
|
||
},
|
||
ruleIndex: Number,
|
||
extendParams: {
|
||
type: Object,
|
||
default: function () {
|
||
return {};
|
||
}
|
||
}
|
||
},
|
||
watch: {
|
||
pBlockData: {
|
||
handler(newValue) {
|
||
this.$nextTick(() => {
|
||
console.log('新data', newValue);
|
||
this.blockData = Object.assign({}, this.blockData, newValue);
|
||
});
|
||
},
|
||
deep: true,
|
||
immediate: true
|
||
}
|
||
},
|
||
data() {
|
||
return {
|
||
blockId: 'blockId' + Math.random(),
|
||
//当前块儿数据,一般用不到,因为一般的块儿中不会在块儿内更改数据
|
||
blockData: {
|
||
playMode: 'xun-huan',
|
||
scheduleControl: 'yes',
|
||
playStyle: 'yuan-wen',
|
||
styleMode: 'A'
|
||
},
|
||
//属性组件名
|
||
propertyComponentsName: 'xml-music-property',
|
||
dialogShow: false,
|
||
curMusicUrl: '',
|
||
curSubTitle: '',
|
||
curSubTitleSrcName: '',
|
||
curSubTitleSrc: '',
|
||
curMusicTitle: '',
|
||
curCoverFileUrl: '',
|
||
curMusicContent: '',
|
||
currentPlayer: {},
|
||
modalPlayerKey: 'mpk' + new Date().getTime()
|
||
};
|
||
},
|
||
methods: {
|
||
// 此方法必须要,用户注册块儿点击事件
|
||
blockClick() {
|
||
this.$emit('blockclick', {
|
||
blockData: this.blockData,
|
||
dataName: this.blockDataName,
|
||
propertyComponentsName: this.propertyComponentsName,
|
||
blockId: this.blockId,
|
||
ruleIndex: this.ruleIndex
|
||
});
|
||
},
|
||
showDialog(param) {
|
||
this.curMusicUrl = param.url;
|
||
this.curSubTitle = param.subTitle;
|
||
this.curSubTitleSrc = param.subTitleSrc;
|
||
this.curSubTitleSrcName = param.subTitleSrcName;
|
||
this.curMusicTitle = param.title;
|
||
this.curCoverFileUrl = param.coverFileUrl;
|
||
this.curMusicContent = param.content;
|
||
this.currentPlayer = this.blockData.musicSetList[param.playerIndex];
|
||
this.modalPlayerKey = 'mpk' + new Date().getTime();
|
||
this.$nextTick(() => {
|
||
this.dialogShow = true;
|
||
});
|
||
},
|
||
timeUpdate({
|
||
event,
|
||
time
|
||
}, data) {
|
||
// console.log({event, time, data});
|
||
// this.$EventBus.$emit('audioTimeUpdate', { event, time, data })
|
||
this.$EventBus.$emit('audioTimeUpdate', {
|
||
event,
|
||
time,
|
||
data: {
|
||
...data,
|
||
chapterId: this.currentRule.chapterId,
|
||
xmlCompRef: this.currentRule.xmlCompRef,
|
||
duration: this.$refs.xmlAudioPlay.totalDuration,
|
||
time
|
||
}
|
||
});
|
||
},
|
||
resetTimeUpdate(data) {
|
||
this.$EventBus.$emit('resetTimeUpdate', data);
|
||
}
|
||
},
|
||
created() {},
|
||
computed: {
|
||
isEmpty() {
|
||
return !(this.blockData.musicSetList && this.blockData.musicSetList.length);
|
||
}
|
||
}
|
||
};
|
||
|
||
/* script */
|
||
const __vue_script__$1 = script$1;
|
||
|
||
/* template */
|
||
var __vue_render__$1 = function () {
|
||
var _vm = this;
|
||
var _h = _vm.$createElement;
|
||
var _c = _vm._self._c || _h;
|
||
return _c(
|
||
"div",
|
||
{
|
||
staticClass: "xml-music-container",
|
||
class: [
|
||
"xml-music-container-" + _vm.pageType,
|
||
"xml-music-style-mode-" + _vm.blockData.styleMode,
|
||
],
|
||
attrs: { id: _vm.blockId },
|
||
on: { click: _vm.blockClick },
|
||
},
|
||
[
|
||
_vm.blockData.musicSetList && _vm.blockData.musicSetList.length
|
||
? _vm._l(_vm.blockData.musicSetList, function (item, index) {
|
||
return _c(
|
||
"div",
|
||
{
|
||
key: index,
|
||
staticClass: "fixed-ratio-container xml-group-item",
|
||
},
|
||
[
|
||
_c(
|
||
"div",
|
||
{
|
||
class: [
|
||
"xml-music__wrapper",
|
||
"style-mode--" + _vm.blockData.styleMode,
|
||
_vm.mode,
|
||
],
|
||
},
|
||
[
|
||
_c(
|
||
"div",
|
||
{ staticClass: "xml-music-player-box" },
|
||
[
|
||
_c("xml-audio-play", {
|
||
ref: "xmlAudioPlay",
|
||
refInFor: true,
|
||
attrs: {
|
||
"targer-link": item.link,
|
||
mode: _vm.mode,
|
||
styleMode: _vm.blockData.styleMode,
|
||
"play-style": _vm.blockData.playStyle,
|
||
"play-mode": _vm.blockData.playMode,
|
||
url: item.uploadFileUrl
|
||
? _vm.resourceBasisPath
|
||
? _vm.resourceBasisPath +
|
||
item.uploadFileUrl.split("./")[1]
|
||
: item.uploadFileUrl
|
||
: "",
|
||
loop: _vm.blockData.playMode === "xun-huan",
|
||
title: item.title,
|
||
playerIndex: index,
|
||
content: item.content,
|
||
scheduleControl: _vm.blockData.scheduleControl,
|
||
subTitle: _vm.blockData.subTitle == "showSubtitle",
|
||
subTitleSrcName: item.subTitleSrcName,
|
||
subTitleSrc: item.subTitleSrc,
|
||
"cover-image-url": item.coverFileUrl
|
||
? _vm.resourceBasisPath
|
||
? _vm.resourceBasisPath +
|
||
item.coverFileUrl.split("./")[1]
|
||
: item.coverFileUrl
|
||
: "",
|
||
},
|
||
on: {
|
||
showDialog: _vm.showDialog,
|
||
timeUpdate: function (e) {
|
||
return _vm.timeUpdate(e, item)
|
||
},
|
||
resetTimeUpdate: function ($event) {
|
||
return _vm.resetTimeUpdate(item)
|
||
},
|
||
},
|
||
}),
|
||
],
|
||
1
|
||
),
|
||
]
|
||
),
|
||
]
|
||
)
|
||
})
|
||
: [
|
||
_c("div", { staticClass: "fixed-ratio-container" }, [
|
||
_c(
|
||
"div",
|
||
{
|
||
class: [
|
||
"xml-music__wrapper",
|
||
"style-mode--" + _vm.blockData.styleMode,
|
||
_vm.mode,
|
||
],
|
||
},
|
||
[
|
||
_c(
|
||
"div",
|
||
{ staticClass: "xml-music-player-box" },
|
||
[
|
||
_c("xml-audio-play", {
|
||
attrs: {
|
||
mode: _vm.mode,
|
||
styleMode: _vm.blockData.styleMode,
|
||
"play-mode": _vm.blockData.playMode,
|
||
title: "这是音频",
|
||
},
|
||
}),
|
||
],
|
||
1
|
||
),
|
||
]
|
||
),
|
||
]),
|
||
],
|
||
_vm._v(" "),
|
||
_c(
|
||
"el-dialog",
|
||
{
|
||
staticClass: "resource-preview player-dialog",
|
||
attrs: {
|
||
title: "",
|
||
visible: _vm.dialogShow,
|
||
"destroy-on-close": true,
|
||
width: "100%",
|
||
modal: false,
|
||
"show-close": false,
|
||
"append-to-body": "",
|
||
"custom-class": "preview-modal-music",
|
||
"close-on-click-modal": true,
|
||
},
|
||
on: {
|
||
"update:visible": function ($event) {
|
||
_vm.dialogShow = $event;
|
||
},
|
||
},
|
||
},
|
||
[
|
||
_c(
|
||
"div",
|
||
{ staticClass: "xml-modal-player__wrapper" },
|
||
[
|
||
_c("xml-audio-modal-player", {
|
||
key: _vm.modalPlayerKey,
|
||
attrs: {
|
||
mode: _vm.mode,
|
||
styleMode: _vm.blockData.styleMode,
|
||
"play-style": "yuan-wen",
|
||
"play-mode": _vm.blockData.playMode,
|
||
url: _vm.curMusicUrl,
|
||
loop: _vm.blockData.playMode === "xun-huan",
|
||
title: _vm.curMusicTitle,
|
||
content: _vm.curMusicContent,
|
||
scheduleControl: _vm.blockData.scheduleControl,
|
||
"cover-image-url": _vm.curCoverFileUrl,
|
||
subTitle: _vm.curSubTitle,
|
||
subTitleSrcName: _vm.curSubTitleSrcName,
|
||
subTitleSrc: _vm.curSubTitleSrc,
|
||
},
|
||
on: {
|
||
timeUpdate: function (e) {
|
||
return _vm.timeUpdate(e, _vm.currentPlayer)
|
||
},
|
||
resetTimeUpdate: function ($event) {
|
||
return _vm.resetTimeUpdate(_vm.currentPlayer)
|
||
},
|
||
},
|
||
}),
|
||
],
|
||
1
|
||
),
|
||
]
|
||
),
|
||
],
|
||
2
|
||
)
|
||
};
|
||
var __vue_staticRenderFns__$1 = [];
|
||
__vue_render__$1._withStripped = true;
|
||
|
||
/* style */
|
||
const __vue_inject_styles__$1 = undefined;
|
||
/* scoped */
|
||
const __vue_scope_id__$1 = undefined;
|
||
/* module identifier */
|
||
const __vue_module_identifier__$1 = undefined;
|
||
/* functional template */
|
||
const __vue_is_functional_template__$1 = false;
|
||
/* style inject */
|
||
|
||
/* style inject SSR */
|
||
|
||
/* style inject shadow dom */
|
||
|
||
|
||
|
||
const __vue_component__$1 = /*#__PURE__*/normalizeComponent(
|
||
{ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
|
||
__vue_inject_styles__$1,
|
||
__vue_script__$1,
|
||
__vue_scope_id__$1,
|
||
__vue_is_functional_template__$1,
|
||
__vue_module_identifier__$1,
|
||
false,
|
||
undefined,
|
||
undefined,
|
||
undefined
|
||
);
|
||
|
||
var playIcon2 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAABxCAYAAADifkzQAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Njg2NEUwNzgxNkZBMTFFRTlENUY5NEMwMDFCNEEwMEIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Njg2NEUwNzkxNkZBMTFFRTlENUY5NEMwMDFCNEEwMEIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2ODY0RTA3NjE2RkExMUVFOUQ1Rjk0QzAwMUI0QTAwQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2ODY0RTA3NzE2RkExMUVFOUQ1Rjk0QzAwMUI0QTAwQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmYAe3gAAAxbSURBVHja7F19lFVV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";
|
||
|
||
var pauseIcon2 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAABxCAYAAADifkzQAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYxQkY4OTgxNkY3MTFFRUIyNDRGRDhFNkVCRjJBOUYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODYxQkY4OTkxNkY3MTFFRUIyNDRGRDhFNkVCRjJBOUYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4NjFCRjg5NjE2RjcxMUVFQjI0NEZEOEU2RUJGMkE5RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4NjFCRjg5NzE2RjcxMUVFQjI0NEZEOEU2RUJGMkE5RiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqT2N5QAAAugSURBVHja7F0NkFZV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";
|
||
|
||
var recordIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAYAAACuwEE+AAAACXBIWXMAAAsTAAALEwEAmpwYAAAFzmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOS4wLWMwMDAgNzkuMTcxYzI3ZiwgMjAyMi8wOC8xNi0xODowMjo0MyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6YTY1YzRhZmItNWM4My00MzVmLTg1YTQtNzM1YWQyY2VmN2E0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjM3MEVFMDBCMUFFMzExRUVBRjgwRTVDQUJDMzE4RDMzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmQ0OGZiYTA3LWZhMjktZDE0OS05YzM3LTk1ZjBlODBiZjY5MCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoTWFjaW50b3NoKSIg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";
|
||
|
||
//
|
||
var script = {
|
||
name: 'AudioPlay',
|
||
components: {
|
||
lyrics: __vue_component__$3
|
||
},
|
||
props: {
|
||
//模式:preview 预览 (默认),editor 编辑
|
||
mode: {
|
||
type: String,
|
||
default: 'editor'
|
||
},
|
||
playStyle: {
|
||
type: String,
|
||
default: 'yuan-wen'
|
||
},
|
||
styleMode: {
|
||
type: String,
|
||
default: 'A'
|
||
},
|
||
url: {
|
||
type: String,
|
||
default: '',
|
||
require: true
|
||
},
|
||
title: {
|
||
type: String,
|
||
default: '音频文件'
|
||
},
|
||
content: {
|
||
type: String,
|
||
default: '暂无简介'
|
||
},
|
||
coverImageUrl: {
|
||
type: String,
|
||
default: ''
|
||
},
|
||
//进度是否能控制
|
||
scheduleControl: {
|
||
type: String,
|
||
default: ''
|
||
},
|
||
loop: {
|
||
type: Boolean,
|
||
default: true
|
||
},
|
||
playMode: {
|
||
type: String,
|
||
default: 'xun-huan'
|
||
},
|
||
targerLink: {
|
||
type: String,
|
||
default: ''
|
||
},
|
||
playerIndex: {
|
||
type: Number,
|
||
default: -1
|
||
},
|
||
subTitle: {
|
||
type: Boolean,
|
||
default: false
|
||
},
|
||
subTitleSrc: {
|
||
type: String,
|
||
default: ''
|
||
},
|
||
subTitleSrcName: {
|
||
type: String,
|
||
default: ''
|
||
}
|
||
},
|
||
computed: {
|
||
videoAndMusicStop() {
|
||
let playState = sessionStorage.getItem('SET_PLAY_STATE');
|
||
return playState;
|
||
},
|
||
playModeIconSrc() {
|
||
let srcMap = {
|
||
'xun-huan': playRepeat,
|
||
'dan-ci': playOnce
|
||
};
|
||
return srcMap[this.playMode];
|
||
}
|
||
},
|
||
watch: {
|
||
url: {
|
||
handler(newVal) {
|
||
let _this = this;
|
||
this.isPlay = false;
|
||
let ua = navigator.userAgent;
|
||
console.log('浏览器 UA', ua);
|
||
/micromessenger/.test(ua.toLowerCase());
|
||
let isIOS = !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
|
||
// isWeixin && isIOS && newVal && this.$message({
|
||
// message: `当前UA为${ua}`,
|
||
// duration: 3000
|
||
// })
|
||
if (isIOS && newVal) {
|
||
try {
|
||
this.$nextTick(() => {
|
||
_this.$refs.musicAudio.muted = true;
|
||
const playPromise = _this.$refs.musicAudio.play();
|
||
_this.$refs.musicAudio.muted = false;
|
||
if (playPromise) {
|
||
playPromise.then(() => {
|
||
_this.$refs.musicAudio.pause();
|
||
}).catch(error => {
|
||
_this.$refs.musicAudio.pause();
|
||
console.log(error);
|
||
});
|
||
}
|
||
});
|
||
} catch (error) {
|
||
console.log(error);
|
||
this.$message({
|
||
type: 'warning',
|
||
message: error,
|
||
duration: 5000
|
||
});
|
||
}
|
||
}
|
||
},
|
||
immediate: true
|
||
},
|
||
subTitleSrc: {
|
||
handler(newVal) {
|
||
this.audio.title = this.title;
|
||
this.audio.src = this.url;
|
||
this.audio.pic = this.coverImageUrl || coverLocal;
|
||
this.audio.lrc = newVal;
|
||
},
|
||
immediate: true
|
||
},
|
||
videoAndMusicStop(val) {
|
||
console.log('watch', val);
|
||
let currentPlayStamp = val || '--';
|
||
if (`${this.url}__playTimeStamp__${this.lastOperateTimeStamp}` !== currentPlayStamp) {
|
||
this.musicAudio.pause();
|
||
}
|
||
}
|
||
},
|
||
data() {
|
||
return {
|
||
playIcon,
|
||
playIcon2,
|
||
pauseIcon,
|
||
pauseIcon2,
|
||
audioIcon,
|
||
coverLocal,
|
||
recordIcon,
|
||
isPlay: false,
|
||
playTime: 0,
|
||
playDuration: '00:00',
|
||
playCurrentTime: '00:00',
|
||
totalDuration: 0,
|
||
link: {
|
||
type: String,
|
||
default: ''
|
||
},
|
||
//链接地址
|
||
lastOperateTimeStamp: '',
|
||
musicAudio: null,
|
||
manualPlay: false,
|
||
Volume: 100,
|
||
//音量
|
||
doubleSpeed: 1,
|
||
//倍速
|
||
audio: {
|
||
title: '',
|
||
artist: '',
|
||
src: '',
|
||
pic: '',
|
||
lrc: ''
|
||
},
|
||
playStat: {
|
||
duration: 0,
|
||
loadedTime: 0,
|
||
playedTime: 0
|
||
}
|
||
};
|
||
},
|
||
mounted() {
|
||
// 加载完毕后,先获取<video>标签DOM对象
|
||
this.musicAudio = this.$refs.musicAudio;
|
||
// this.videoContainer = this.$refs.videoContainer
|
||
if (this.mode === 'preview' && this.playStyle === 'yuan-wen') {
|
||
this.$emit('resetTimeUpdate');
|
||
}
|
||
},
|
||
methods: {
|
||
changeDuration() {
|
||
this.$nextTick(() => {
|
||
this.playDuration = this.timeFormat(this.$refs.musicAudio.duration);
|
||
this.totalDuration = this.$refs.musicAudio.duration;
|
||
});
|
||
},
|
||
//将单位为秒的的时间转换成mm:ss的形式
|
||
timeFormat(num) {
|
||
let minute = parseInt(num / 60);
|
||
let second = parseInt(num % 60);
|
||
minute = minute >= 10 ? minute : `0${minute}`;
|
||
second = second >= 10 ? second : `0${second}`;
|
||
return `${minute}:${second}`;
|
||
},
|
||
play() {
|
||
// if (this.mode==='editor') {
|
||
// this.$message.warning('音频仅支持在预览模式下播放')
|
||
// return
|
||
// }
|
||
if (this.playStyle === 'yuan-wen') {
|
||
this.doPlay();
|
||
}
|
||
if (this.playStyle === 'tiao-zhuan') {
|
||
if (this.targerLink) {
|
||
// window.location.href=this.targerLink
|
||
window.open(this.targerLink, '_blank');
|
||
} else {
|
||
this.$message.warning('获取资源链接失败,请检查链接地址');
|
||
}
|
||
}
|
||
if (this.playStyle === 'tan-chuang') {
|
||
this.$emit('showDialog', {
|
||
url: this.url,
|
||
title: this.title,
|
||
coverFileUrl: this.coverImageUrl,
|
||
content: this.content,
|
||
playerIndex: this.playerIndex,
|
||
subTitle: this.subTitle,
|
||
subTitleSrc: this.subTitleSrc,
|
||
subTitleSrcName: this.subTitleSrcName
|
||
});
|
||
}
|
||
},
|
||
doPlay() {
|
||
let audio = document.querySelectorAll('audio');
|
||
audio.forEach(i => i.pause());
|
||
let video = document.querySelectorAll('video');
|
||
if (video && video.length) {
|
||
video.forEach(i => i.pause());
|
||
}
|
||
if (this.isPlay) {
|
||
this.$refs.musicAudio.pause();
|
||
this.isPlay = !this.isPlay;
|
||
} else {
|
||
this.manualPlay = true;
|
||
this.$refs.musicAudio.play().then(() => {
|
||
this.isPlay = !this.isPlay;
|
||
let timeStamp = new Date().getTime();
|
||
this.lastOperateTimeStamp = timeStamp;
|
||
let playStamp = `${this.url}__playTimeStamp__${timeStamp}`;
|
||
sessionStorage.setItem('SET_PLAY_STATE', playStamp); //存储
|
||
}).catch(error => {
|
||
this.$message.warning('无效音频资源,请检查资源地址');
|
||
console.log('音频播放catch', error);
|
||
});
|
||
}
|
||
// this.isPlay ? this.$refs.musicAudio.pause() : this.$refs.musicAudio.play()
|
||
// this.isPlay = !this.isPlay
|
||
// let timeStamp = new Date().getTime()
|
||
// this.lastOperateTimeStamp = timeStamp
|
||
// let playStamp = `${this.url}__playTimeStamp__${timeStamp}`
|
||
// // !this.isPlay && this.$store.commit('leaflet/SET_PLAY_STATE', playStamp)
|
||
// // this.$store.commit('leaflet/SET_PLAY_STATE', playStamp)
|
||
// sessionStorage.setItem('SET_PLAY_STATE', playStamp) //存储
|
||
},
|
||
updateTime(e) {
|
||
this.playTime = this.$refs.musicAudio.currentTime;
|
||
this.playStat.playedTime = this.$refs.musicAudio.currentTime;
|
||
this.playCurrentTime = this.timeFormat(this.$refs.musicAudio.currentTime);
|
||
if (this.playTime >= this.totalDuration) {
|
||
this.isPlay = false;
|
||
}
|
||
this.$emit('timeUpdate', {
|
||
event: e,
|
||
time: this.$refs.musicAudio.currentTime
|
||
});
|
||
},
|
||
changeTime(val) {
|
||
this.$refs.musicAudio.currentTime = val;
|
||
},
|
||
onPlay() {
|
||
if (!this.manualPlay) {
|
||
this.$refs.musicAudio.pause();
|
||
}
|
||
},
|
||
changeVolume(val) {
|
||
this.$refs.musicAudio.volume = val / 100;
|
||
},
|
||
changeDoubleSpeed() {
|
||
if (this.doubleSpeed == 1) {
|
||
this.doubleSpeed = 1.25;
|
||
} else if (this.doubleSpeed == 1.25) {
|
||
this.doubleSpeed = 1.5;
|
||
} else if (this.doubleSpeed == 1.5) {
|
||
this.doubleSpeed = 2;
|
||
} else if (this.doubleSpeed == 2) {
|
||
this.doubleSpeed = 0.5;
|
||
} else if (this.doubleSpeed == 0.5) {
|
||
this.doubleSpeed = 1;
|
||
}
|
||
this.$refs.musicAudio.playbackRate = this.doubleSpeed;
|
||
}
|
||
}
|
||
};
|
||
|
||
/* script */
|
||
const __vue_script__ = script;
|
||
|
||
/* template */
|
||
var __vue_render__ = function () {
|
||
var _vm = this;
|
||
var _h = _vm.$createElement;
|
||
var _c = _vm._self._c || _h;
|
||
return _c(
|
||
"div",
|
||
{ class: ["xml-audio-player", _vm.mode] },
|
||
[
|
||
_vm.styleMode == "A" || _vm.styleMode == "B" || _vm.styleMode == "C"
|
||
? _c("div", { staticClass: "play-mode-wrap" }, [
|
||
_c("img", {
|
||
staticClass: "play-control-image",
|
||
attrs: { src: _vm.playModeIconSrc },
|
||
}),
|
||
])
|
||
: _vm._e(),
|
||
_vm._v(" "),
|
||
_vm.styleMode == "A" || _vm.styleMode == "B" || _vm.styleMode == "C"
|
||
? _c("div", { staticStyle: { width: "100%", display: "flex" } }, [
|
||
_vm.styleMode !== "C"
|
||
? _c(
|
||
"div",
|
||
{ staticClass: "audio-cover" },
|
||
[
|
||
_c("el-image", {
|
||
staticClass: "xml-round-6",
|
||
attrs: {
|
||
src: _vm.coverImageUrl
|
||
? _vm.coverImageUrl
|
||
: _vm.coverLocal,
|
||
alt: "",
|
||
},
|
||
}),
|
||
_vm._v(" "),
|
||
_vm.styleMode === "A"
|
||
? _c("div", { staticClass: "play-button style-a" }, [
|
||
_c("img", {
|
||
staticClass: "button-image",
|
||
attrs: {
|
||
src: _vm.isPlay ? _vm.pauseIcon : _vm.playIcon,
|
||
},
|
||
on: {
|
||
click: function ($event) {
|
||
$event.stopPropagation();
|
||
return _vm.play.apply(null, arguments)
|
||
},
|
||
},
|
||
}),
|
||
])
|
||
: _vm._e(),
|
||
],
|
||
1
|
||
)
|
||
: _vm._e(),
|
||
_vm._v(" "),
|
||
_c("div", { staticClass: "audio-player-control" }, [
|
||
_c(
|
||
"div",
|
||
{
|
||
class: [
|
||
"audio-player-title",
|
||
_vm.mode == "preview" && _vm.title.length >= 16
|
||
? "preview"
|
||
: "",
|
||
],
|
||
},
|
||
[
|
||
_c(
|
||
"div",
|
||
{
|
||
staticClass: "xml-audio-title scroll-text",
|
||
style:
|
||
_vm.mode == "preview" && _vm.title.length >= 16
|
||
? {
|
||
animation:
|
||
"fadeNum " +
|
||
_vm.title.length / 3 +
|
||
"s linear infinite backwards",
|
||
}
|
||
: "",
|
||
},
|
||
[
|
||
_vm._v(
|
||
"\n " + _vm._s(_vm.title) + "\n "
|
||
),
|
||
]
|
||
),
|
||
]
|
||
),
|
||
_vm._v(" "),
|
||
_c("div", { staticClass: "audio-controls" }, [
|
||
_vm.styleMode !== "A"
|
||
? _c(
|
||
"div",
|
||
{ staticClass: "audio-controls__play-button-wrapper" },
|
||
[
|
||
_c("div", { staticClass: "play-button" }, [
|
||
_c("img", {
|
||
staticClass: "button-image",
|
||
attrs: {
|
||
src: _vm.isPlay ? _vm.pauseIcon : _vm.playIcon,
|
||
},
|
||
on: {
|
||
click: function ($event) {
|
||
$event.stopPropagation();
|
||
return _vm.play.apply(null, arguments)
|
||
},
|
||
},
|
||
}),
|
||
]),
|
||
]
|
||
)
|
||
: _vm._e(),
|
||
_vm._v(" "),
|
||
_c("div", { staticClass: "audio-controls__handler" }, [
|
||
_c(
|
||
"div",
|
||
{ staticClass: "progress" },
|
||
[
|
||
_vm.subTitle
|
||
? _c("lyrics", {
|
||
staticStyle: { "margin-top": "-25px" },
|
||
attrs: {
|
||
"current-music": _vm.audio,
|
||
"play-stat": _vm.playStat,
|
||
},
|
||
})
|
||
: _vm._e(),
|
||
_vm._v(" "),
|
||
_c("el-slider", {
|
||
attrs: {
|
||
max: _vm.totalDuration,
|
||
disabled: _vm.scheduleControl !== "yes",
|
||
"show-tooltip": false,
|
||
},
|
||
on: { change: _vm.changeTime },
|
||
model: {
|
||
value: _vm.playTime,
|
||
callback: function ($$v) {
|
||
_vm.playTime = $$v;
|
||
},
|
||
expression: "playTime",
|
||
},
|
||
}),
|
||
],
|
||
1
|
||
),
|
||
_vm._v(" "),
|
||
_c("div", { staticClass: "play-times" }, [
|
||
_c("div", { staticClass: "current-time" }, [
|
||
_vm._v(_vm._s(_vm.playCurrentTime)),
|
||
]),
|
||
_vm._v(" "),
|
||
_c("div", { staticClass: "total-time" }, [
|
||
_vm._v(_vm._s(_vm.playDuration)),
|
||
]),
|
||
]),
|
||
]),
|
||
]),
|
||
]),
|
||
])
|
||
: _vm.styleMode == "D"
|
||
? _c("div", { staticClass: "audio-play-box" }, [
|
||
_c(
|
||
"div",
|
||
{ staticClass: "audio-cover" },
|
||
[
|
||
_c("div", { staticClass: "video-pause-btn" }, [
|
||
_c(
|
||
"div",
|
||
{ staticClass: "audio-controls__play-button-wrapper" },
|
||
[
|
||
_c("div", { staticClass: "play-button" }, [
|
||
_c("img", {
|
||
staticClass: "button-image",
|
||
attrs: {
|
||
src: _vm.isPlay ? _vm.pauseIcon2 : _vm.playIcon2,
|
||
},
|
||
on: {
|
||
click: function ($event) {
|
||
$event.stopPropagation();
|
||
return _vm.play.apply(null, arguments)
|
||
},
|
||
},
|
||
}),
|
||
]),
|
||
]
|
||
),
|
||
]),
|
||
_vm._v(" "),
|
||
_c("el-image", {
|
||
staticClass: "xml-round-6",
|
||
attrs: { src: _vm.recordIcon, alt: "" },
|
||
}),
|
||
],
|
||
1
|
||
),
|
||
_vm._v(" "),
|
||
_c("div", { staticClass: "audio-player-control" }, [
|
||
_c(
|
||
"div",
|
||
{
|
||
class: [
|
||
"audio-player-title",
|
||
_vm.mode == "preview" && _vm.title.length >= 16
|
||
? "preview"
|
||
: "",
|
||
],
|
||
},
|
||
[
|
||
_c(
|
||
"div",
|
||
{
|
||
staticClass: "xml-audio-title scroll-text",
|
||
style:
|
||
_vm.mode == "preview" && _vm.title.length >= 16
|
||
? {
|
||
animation:
|
||
"fadeNum " +
|
||
_vm.title.length / 3 +
|
||
"s linear infinite backwards",
|
||
}
|
||
: "",
|
||
},
|
||
[_vm._v("\n " + _vm._s(_vm.title) + "\n ")]
|
||
),
|
||
]
|
||
),
|
||
_vm._v(" "),
|
||
_c("div", { staticClass: "audio-controls" }, [
|
||
_c("div", { staticClass: "audio-controls__handler" }, [
|
||
_c(
|
||
"div",
|
||
{ staticClass: "progress" },
|
||
[
|
||
_vm.subTitle
|
||
? _c("lyrics", {
|
||
staticStyle: { "margin-top": "-25px" },
|
||
attrs: {
|
||
"current-music": _vm.audio,
|
||
"play-stat": _vm.playStat,
|
||
},
|
||
})
|
||
: _vm._e(),
|
||
_vm._v(" "),
|
||
_c("el-slider", {
|
||
attrs: {
|
||
max: _vm.totalDuration,
|
||
disabled: _vm.scheduleControl !== "yes",
|
||
"show-tooltip": false,
|
||
"tooltip-class": "silder-bg",
|
||
},
|
||
on: { change: _vm.changeTime },
|
||
model: {
|
||
value: _vm.playTime,
|
||
callback: function ($$v) {
|
||
_vm.playTime = $$v;
|
||
},
|
||
expression: "playTime",
|
||
},
|
||
}),
|
||
],
|
||
1
|
||
),
|
||
_vm._v(" "),
|
||
_c("div", { staticClass: "play-times" }, [
|
||
_c("div", { staticClass: "current-time" }, [
|
||
_vm._v(_vm._s(_vm.playCurrentTime)),
|
||
]),
|
||
_vm._v(" "),
|
||
_c("div", { staticClass: "total-time" }, [
|
||
_vm._v(_vm._s(_vm.playDuration)),
|
||
]),
|
||
]),
|
||
]),
|
||
]),
|
||
]),
|
||
])
|
||
: _vm.styleMode == "E"
|
||
? _c("div", { staticClass: "styleModeE_content" }, [
|
||
_c("div", { staticClass: "styleModeE_title" }, [
|
||
_vm._v(_vm._s(_vm.title)),
|
||
]),
|
||
_vm._v(" "),
|
||
_c("div", { staticClass: "styleModeE_row" }, [
|
||
_c(
|
||
"div",
|
||
{
|
||
staticStyle: { cursor: "pointer" },
|
||
on: {
|
||
click: function ($event) {
|
||
$event.stopPropagation();
|
||
return _vm.play.apply(null, arguments)
|
||
},
|
||
},
|
||
},
|
||
[
|
||
_vm.isPlay
|
||
? _c("i", {
|
||
staticClass: "el-icon-video-pause",
|
||
staticStyle: { "font-size": "28px" },
|
||
})
|
||
: _c("i", {
|
||
staticClass: "el-icon-caret-right",
|
||
staticStyle: { "font-size": "28px" },
|
||
}),
|
||
]
|
||
),
|
||
_vm._v(" "),
|
||
_c(
|
||
"div",
|
||
{ staticClass: "styleModeE_progress" },
|
||
[
|
||
_vm.subTitle
|
||
? _c("lyrics", {
|
||
staticStyle: { "margin-top": "-25px" },
|
||
attrs: {
|
||
"current-music": _vm.audio,
|
||
"play-stat": _vm.playStat,
|
||
},
|
||
})
|
||
: _vm._e(),
|
||
_vm._v(" "),
|
||
_c("el-slider", {
|
||
attrs: {
|
||
max: _vm.totalDuration,
|
||
disabled: _vm.scheduleControl !== "yes",
|
||
"show-tooltip": false,
|
||
},
|
||
on: { change: _vm.changeTime },
|
||
model: {
|
||
value: _vm.playTime,
|
||
callback: function ($$v) {
|
||
_vm.playTime = $$v;
|
||
},
|
||
expression: "playTime",
|
||
},
|
||
}),
|
||
],
|
||
1
|
||
),
|
||
_vm._v(" "),
|
||
_c(
|
||
"div",
|
||
{
|
||
staticStyle: {
|
||
display: "flex",
|
||
"flex-direction": "row",
|
||
"align-items": "center",
|
||
},
|
||
},
|
||
[
|
||
_c("div", [
|
||
_vm._v(
|
||
_vm._s(_vm.playCurrentTime) +
|
||
"/ " +
|
||
_vm._s(_vm.playDuration)
|
||
),
|
||
]),
|
||
_vm._v(" "),
|
||
_c(
|
||
"el-popover",
|
||
{
|
||
attrs: {
|
||
placement: "bottom",
|
||
width: "200",
|
||
trigger: "click",
|
||
},
|
||
},
|
||
[
|
||
_c(
|
||
"div",
|
||
[
|
||
_c("el-slider", {
|
||
attrs: { "show-tooltip": false },
|
||
on: { change: _vm.changeVolume },
|
||
model: {
|
||
value: _vm.Volume,
|
||
callback: function ($$v) {
|
||
_vm.Volume = $$v;
|
||
},
|
||
expression: "Volume",
|
||
},
|
||
}),
|
||
],
|
||
1
|
||
),
|
||
_vm._v(" "),
|
||
_c("i", {
|
||
staticClass: "el-icon-s-tools",
|
||
staticStyle: {
|
||
"font-size": "18px",
|
||
"margin-left": "15px",
|
||
cursor: "pointer",
|
||
},
|
||
attrs: { slot: "reference" },
|
||
slot: "reference",
|
||
}),
|
||
]
|
||
),
|
||
],
|
||
1
|
||
),
|
||
]),
|
||
])
|
||
: _vm.styleMode == "F"
|
||
? [
|
||
_c("div", { staticClass: "styleModeF_row styleModeF_content" }, [
|
||
_c("div", { staticStyle: { position: "relative" } }, [
|
||
_c("div", { staticClass: "styleModeF_IMG" }, [
|
||
_c("img", {
|
||
attrs: {
|
||
src: _vm.coverImageUrl
|
||
? _vm.coverImageUrl
|
||
: _vm.coverLocal,
|
||
alt: "",
|
||
},
|
||
}),
|
||
]),
|
||
_vm._v(" "),
|
||
_vm.isPlay
|
||
? _c("i", {
|
||
staticClass: "el-icon-video-pause styleModeF_I",
|
||
on: {
|
||
click: function ($event) {
|
||
$event.stopPropagation();
|
||
return _vm.play.apply(null, arguments)
|
||
},
|
||
},
|
||
})
|
||
: _c("i", {
|
||
staticClass: "el-icon-video-play styleModeF_I",
|
||
on: {
|
||
click: function ($event) {
|
||
$event.stopPropagation();
|
||
return _vm.play.apply(null, arguments)
|
||
},
|
||
},
|
||
}),
|
||
]),
|
||
_vm._v(" "),
|
||
_c(
|
||
"div",
|
||
{ staticStyle: { "margin-left": "20px", width: "100%" } },
|
||
[
|
||
_c("div", { staticClass: "styleModeF_row" }, [
|
||
_c(
|
||
"div",
|
||
{
|
||
staticStyle: { cursor: "pointer" },
|
||
on: {
|
||
click: function ($event) {
|
||
$event.stopPropagation();
|
||
return _vm.play.apply(null, arguments)
|
||
},
|
||
},
|
||
},
|
||
[
|
||
_vm.isPlay
|
||
? _c("i", {
|
||
staticClass: "el-icon-video-pause",
|
||
staticStyle: { "font-size": "28px" },
|
||
})
|
||
: _c("i", {
|
||
staticClass: "el-icon-caret-right",
|
||
staticStyle: { "font-size": "28px" },
|
||
}),
|
||
]
|
||
),
|
||
_vm._v(" "),
|
||
_c(
|
||
"div",
|
||
{ staticClass: "styleModeF_progress" },
|
||
[
|
||
_c("el-slider", {
|
||
attrs: {
|
||
max: _vm.totalDuration,
|
||
disabled: _vm.scheduleControl !== "yes",
|
||
"show-tooltip": false,
|
||
},
|
||
on: { change: _vm.changeTime },
|
||
model: {
|
||
value: _vm.playTime,
|
||
callback: function ($$v) {
|
||
_vm.playTime = $$v;
|
||
},
|
||
expression: "playTime",
|
||
},
|
||
}),
|
||
],
|
||
1
|
||
),
|
||
_vm._v(" "),
|
||
_c(
|
||
"div",
|
||
{
|
||
staticStyle: {
|
||
display: "flex",
|
||
"flex-direction": "row",
|
||
"align-items": "center",
|
||
},
|
||
},
|
||
[
|
||
_c("div", [
|
||
_vm._v(
|
||
_vm._s(_vm.playCurrentTime) +
|
||
" / " +
|
||
_vm._s(_vm.playDuration)
|
||
),
|
||
]),
|
||
_vm._v(" "),
|
||
_c(
|
||
"el-popover",
|
||
{
|
||
attrs: {
|
||
placement: "bottom",
|
||
width: "200",
|
||
trigger: "click",
|
||
},
|
||
},
|
||
[
|
||
_c(
|
||
"div",
|
||
[
|
||
_c("el-slider", {
|
||
attrs: { "show-tooltip": false },
|
||
on: { change: _vm.changeVolume },
|
||
model: {
|
||
value: _vm.Volume,
|
||
callback: function ($$v) {
|
||
_vm.Volume = $$v;
|
||
},
|
||
expression: "Volume",
|
||
},
|
||
}),
|
||
],
|
||
1
|
||
),
|
||
_vm._v(" "),
|
||
_c("i", {
|
||
staticClass: "el-icon-s-tools",
|
||
staticStyle: {
|
||
"font-size": "18px",
|
||
"margin-left": "15px",
|
||
cursor: "pointer",
|
||
},
|
||
attrs: { slot: "reference" },
|
||
slot: "reference",
|
||
}),
|
||
]
|
||
),
|
||
],
|
||
1
|
||
),
|
||
]),
|
||
_vm._v(" "),
|
||
_c("div", { staticClass: "styleModeF_title" }, [
|
||
_vm._v("当前倍速:"),
|
||
_c(
|
||
"span",
|
||
{
|
||
staticStyle: { cursor: "pointer" },
|
||
on: { click: _vm.changeDoubleSpeed },
|
||
},
|
||
[_vm._v("X" + _vm._s(_vm.doubleSpeed))]
|
||
),
|
||
]),
|
||
_vm._v(" "),
|
||
_c("div", { staticClass: "styleModeF_title" }, [
|
||
_vm._v("\n " + _vm._s(_vm.title) + "\n "),
|
||
]),
|
||
_vm._v(" "),
|
||
_vm.subTitle
|
||
? _c("lyrics", {
|
||
staticStyle: { "margin-top": "10px" },
|
||
attrs: {
|
||
"current-music": _vm.audio,
|
||
"play-stat": _vm.playStat,
|
||
},
|
||
})
|
||
: _vm._e(),
|
||
],
|
||
1
|
||
),
|
||
]),
|
||
]
|
||
: _vm._e(),
|
||
_vm._v(" "),
|
||
_c("audio", {
|
||
ref: "musicAudio",
|
||
staticClass: "audio-component",
|
||
attrs: {
|
||
controls: "",
|
||
preload: "auto",
|
||
src: _vm.url,
|
||
loop: _vm.loop,
|
||
link: _vm.link,
|
||
},
|
||
on: {
|
||
canplay: _vm.changeDuration,
|
||
timeupdate: _vm.updateTime,
|
||
pause: function ($event) {
|
||
_vm.isPlay = false;
|
||
},
|
||
play: _vm.onPlay,
|
||
},
|
||
}),
|
||
],
|
||
2
|
||
)
|
||
};
|
||
var __vue_staticRenderFns__ = [];
|
||
__vue_render__._withStripped = true;
|
||
|
||
/* style */
|
||
const __vue_inject_styles__ = undefined;
|
||
/* scoped */
|
||
const __vue_scope_id__ = undefined;
|
||
/* module identifier */
|
||
const __vue_module_identifier__ = undefined;
|
||
/* functional template */
|
||
const __vue_is_functional_template__ = false;
|
||
/* style inject */
|
||
|
||
/* style inject SSR */
|
||
|
||
/* style inject shadow dom */
|
||
|
||
|
||
|
||
const __vue_component__ = /*#__PURE__*/normalizeComponent(
|
||
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
||
__vue_inject_styles__,
|
||
__vue_script__,
|
||
__vue_scope_id__,
|
||
__vue_is_functional_template__,
|
||
__vue_module_identifier__,
|
||
false,
|
||
undefined,
|
||
undefined,
|
||
undefined
|
||
);
|
||
|
||
const MusicComponents = [__vue_component__$1, __vue_component__];
|
||
var index = {
|
||
...MusicComponents
|
||
};
|
||
|
||
export { index as default };
|