From aae6a088502ffd90a83ce4448b5b2bad28533b09 Mon Sep 17 00:00:00 2001 From: lzw-723 Date: Thu, 8 Jan 2026 22:06:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=92=AD=E6=94=BE=E5=99=A8ui?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/App.vue | 2 + web/src/components/AudioPlayer.vue | 320 +++++++++++++++++++++++++++++ web/src/stores/player.js | 11 + 3 files changed, 333 insertions(+) create mode 100644 web/src/components/AudioPlayer.vue create mode 100644 web/src/stores/player.js diff --git a/web/src/App.vue b/web/src/App.vue index 366188b..df51ee1 100644 --- a/web/src/App.vue +++ b/web/src/App.vue @@ -1,5 +1,6 @@ diff --git a/web/src/components/AudioPlayer.vue b/web/src/components/AudioPlayer.vue new file mode 100644 index 0000000..67fbcec --- /dev/null +++ b/web/src/components/AudioPlayer.vue @@ -0,0 +1,320 @@ + + + + + diff --git a/web/src/stores/player.js b/web/src/stores/player.js new file mode 100644 index 0000000..5c20de1 --- /dev/null +++ b/web/src/stores/player.js @@ -0,0 +1,11 @@ +import { ref, computed } from 'vue' +import { defineStore } from 'pinia' + +export const usePlayerStore = defineStore('counter', () => { + const currentTime = ref(0) + const duration = ref(0) + const volume = ref(80) + const progress = computed(() => (currentTime.value / (duration.value + 1)) * 100) + + return { currentTime, duration, progress, volume } +})