feat: 新增加载音乐失败的处理方法

This commit is contained in:
first19326 2023-11-04 20:21:50 +08:00
parent be94711dc8
commit 46b187d01f

View File

@ -16,6 +16,7 @@
@pause="onPause" @pause="onPause"
@timeupdate="onTimeUp" @timeupdate="onTimeUp"
@onSelectSong="onSelectSong" @onSelectSong="onSelectSong"
@error="loadMusicError"
/> />
</template> </template>
@ -37,6 +38,8 @@ const playList = ref([]);
const playIndex = ref(0); const playIndex = ref(0);
const playListCount = ref(0); const playListCount = ref(0);
const skipTimeout = ref(null);
// //
const props = defineProps({ const props = defineProps({
// //
@ -202,8 +205,39 @@ const changeSong = (type) => {
}); });
}; };
//
const loadMusicError = () => {
let notice = "";
if (playList.value.length > 1) {
notice = "播放音频出现错误,播放器将在 2s 后进行跳转";
//
skipTimeout.value = setTimeout(() => {
changeSong(1);
if (!player.value.audio.paused) {
onPlay();
}
}, 2000);
} else {
notice = "播放音频出现错误";
}
ElMessage({
message: notice,
grouping: true,
icon: h(PlayWrong, {
theme: "filled",
fill: "#EFEFEF",
duration: 2000,
}),
});
console.error("播放音乐: " + player.value.currentMusic.title + " 出现错误");
};
// //
defineExpose({ playToggle, changeVolume, changeSong }); defineExpose({ playToggle, changeVolume, changeSong });
onBeforeUnmount(() => {
clearTimeout(skipTimeout.value);
});
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>