|
@@ -234,13 +234,24 @@ export default defineComponent({
|
|
}
|
|
}
|
|
return new Promise((resolve) => {
|
|
return new Promise((resolve) => {
|
|
const a = new Audio(src + '?v=' + Date.now());
|
|
const a = new Audio(src + '?v=' + Date.now());
|
|
- a.load();
|
|
|
|
a.onloadedmetadata = () => {
|
|
a.onloadedmetadata = () => {
|
|
resolve(a);
|
|
resolve(a);
|
|
};
|
|
};
|
|
a.onerror = () => {
|
|
a.onerror = () => {
|
|
resolve(null);
|
|
resolve(null);
|
|
};
|
|
};
|
|
|
|
+ // 当未加载 资源之前 切换到其他浏览器标签,浏览器可能会禁止资源加载所以无法触发onloadedmetadata事件,导致一直在加载中,这里做个兼容
|
|
|
|
+ if (document.visibilityState === 'visible') {
|
|
|
|
+ a.load();
|
|
|
|
+ } else {
|
|
|
|
+ const onVisibilityChange = () => {
|
|
|
|
+ if (document.visibilityState === 'visible') {
|
|
|
|
+ document.removeEventListener('visibilitychange', onVisibilityChange);
|
|
|
|
+ a.load();
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ document.addEventListener('visibilitychange', onVisibilityChange);
|
|
|
|
+ }
|
|
});
|
|
});
|
|
};
|
|
};
|
|
|
|
|