Tengo una input con type="file" que solo acepta un archivo de música. Quiero obtener información sobre música. Por ejemplo: el nombre del cantante o la foto de la música.
<input type="file" className="popup-content--file" accept="audio/*" id="file" onChange={(e) => {selectMusic(e, e.currentTarget.files[0])}} /> const selectMusic = (e, file) => { if(file.size < 10485760 && file.type.includes('audio/')){ const reader = new FileReader() reader.readAsDataURL(file) reader.onload = () => { console.log(reader) } } }El archivo de audio puede contener información de metadatos almacenada como etiquetas ID3 .
Hay analizadores id3 basados en navegador como este que lo ayudarán, desde sus documentos:
<input type="file"> <script type="module"> import * as id3 from '//unpkg.com/id3js@^2/lib/id3.js'; document .querySelector('input[type="file"]') .addEventListener('change', async (e) => { const tags = await id3.fromFile(e.currentTarget.files[0]); // tags now contains v1, v2 and merged tags }); </script>