This commit is contained in:
shengchanzhe 2023-10-12 17:00:46 +08:00
parent 0301413779
commit 9fe237d859
1 changed files with 31 additions and 24 deletions

View File

@ -1,5 +1,5 @@
<script setup lang='ts'> <script setup lang='ts'>
import { computed, ref, reactive } from 'vue' import { computed, reactive, ref } from 'vue'
import { NDropdown, useMessage } from 'naive-ui' import { NDropdown, useMessage } from 'naive-ui'
import AvatarComponent from './Avatar.vue' import AvatarComponent from './Avatar.vue'
import TextComponent from './Text.vue' import TextComponent from './Text.vue'
@ -12,7 +12,7 @@ import { copyToClip } from '@/utils/copy'
interface Props { interface Props {
dateTime?: string dateTime?: string
text?: string text?: string
mp3?: Array<any> mp3?: Array<any>
inversion?: boolean inversion?: boolean
error?: boolean error?: boolean
loading?: boolean loading?: boolean
@ -92,30 +92,37 @@ async function handleCopy() {
} }
} }
function radioPlay(){ function radioPlay() {
console.log('播放', props.mp3); console.log('播放', props.mp3)
for (let i = 0; i < props.mp3.value.length; i++) { for (let i = 0; i < props.mp3.length; i++) {
audioElements.push(new Audio(props.mp3.value[i])); const a = new Audio(props.mp3[i])
} a.addEventListener('ended', () => {
playAudio() onAudioEnd(i)
})
audioElements.push(a)
}
playAudio()
}
const onAudioEnd = (index: any) => {
if (index + 1 < audioElements.length)
audioElements[index + 1].play()
} }
// //
const audioElements = reactive([]); const audioElements = reactive([])
// //
const playAudio = () => { const playAudio = () => {
for (let i = 0; i < audioElements.length; i++) { // for (let i = 0; i < audioElements.length; i++)
audioElements[i].play(); audioElements[0].play()
} }
};
//
const pauseAudio = () => {
for (let i = 0; i < audioElements.length; i++) {
audioElements[i].pause();
}
};
//
const pauseAudio = () => {
for (let i = 0; i < audioElements.length; i++)
audioElements[i].pause()
}
</script> </script>
<template> <template>
@ -154,12 +161,12 @@ const audioElements = reactive([]);
> >
<SvgIcon icon="ri:restart-line" /> <SvgIcon icon="ri:restart-line" />
</button> </button>
<button <button
v-if="!inversion" v-if="!inversion"
class="mb-2 transition text-neutral-300 hover:text-neutral-800 dark:hover:text-neutral-300" class="mb-2 transition text-neutral-300 hover:text-neutral-800 dark:hover:text-neutral-300"
@click="radioPlay" @click="radioPlay"
> >
播放 播放
<!-- <SvgIcon icon="ri:restart-line" /> --> <!-- <SvgIcon icon="ri:restart-line" /> -->
</button> </button>
<NDropdown <NDropdown