From 10e7341a7391f9e1898a1900928bfe91501bc856 Mon Sep 17 00:00:00 2001 From: Alikia2x Date: Sat, 11 May 2024 12:13:31 +0800 Subject: [PATCH] update: audio metadata fetch --- src/lib/audio/getAudioIDMetadata.ts | 22 ++++++++++++++++++++++ src/lib/components/cover.svelte | 1 - src/lib/getAudioCoverURL.ts | 1 - src/routes/play/[id]/+page.svelte | 22 ++++++++++++++++++---- 4 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 src/lib/audio/getAudioIDMetadata.ts diff --git a/src/lib/audio/getAudioIDMetadata.ts b/src/lib/audio/getAudioIDMetadata.ts new file mode 100644 index 0000000..22f11dd --- /dev/null +++ b/src/lib/audio/getAudioIDMetadata.ts @@ -0,0 +1,22 @@ +import * as musicMetadata from 'music-metadata-browser'; +import localforage from 'localforage'; + +export default function (audioId: string, callback: Function) { + localforage.getItem(`${audioId}-metadata`, function (err, metadata) { + if (metadata) { + callback(metadata); + } else { + localforage.getItem(`${audioId}-file`, function (err, file) { + if (file) { + const f = file as File; + musicMetadata.parseBlob(f).then((metadata) => { + if (metadata) { + localforage.setItem(`${audioId}-metadata`, metadata); + callback(metadata); + } else callback(null); + }); + } + }); + } + }); +} diff --git a/src/lib/components/cover.svelte b/src/lib/components/cover.svelte index 91b966d..40df60d 100644 --- a/src/lib/components/cover.svelte +++ b/src/lib/components/cover.svelte @@ -1,6 +1,5 @@