function loadMetaDataAll() {
var alltrack = Array.prototype.slice.call(document.querySelectorAll('.track'), 0);
alltrack.forEach((item) => {
id3(item.getAttribute('data-src'), (err, tags) => {
console.log(tags);
item.setAttribute('data-title', tags.title);
item.setAttribute('data-album', tags.album);
item.setAttribute('data-year', tags.year);
item.querySelector('span.title').innerHTML = tags.artist + ' - ' + tags.title;
item.setAttribute('data-artist', tags.artist)
var audioForMetadata = new Audio(); //Да, да - костыль...
audioForMetadata.preload = 'metadata';
audioForMetadata.src = item.getAttribute('data-src');
audioForMetadata.addEventListener('error', (err) => {
console.log('error', err)
item.querySelector('span.duration').innerHTML = 'Ошибка';
item.setAttribute('data-duration', error)
})
audioForMetadata.addEventListener('durationchange', (event) => {
//Это событие не вызывается
item.querySelector('span.duration').innerHTML = Math.floor(event.target.duration / 60) + ':'
+ Math.round(event.target.duration % 60);
item.setAttribute('data-duration', Math.floor(event.target.duration / 60) + ':'
+ Math.round(event.target.duration % 60))
event.target.src = 'null';
event.target.preload = 'none';
delete audioForMetadata;
})
getFileSize(item.getAttribute('data-src'), (size) => {
item.querySelector('span.size').innerHTML = (size / 1024 / 1024).toFixed(2) + ' МБ';
item.setAttribute('data-size', size)
})
})
})
}
Если есть предложение для улучшения кода..милости прошу)
http://obscuratest.hol.es/ - можете посмотреть здесь.