aquavox/packages/core/audio/getAudioIDMetadata.ts

23 lines
817 B
TypeScript

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);
});
}
});
}
});
}