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 @@