问题描述
让我们想象一下,如果我正在构建一个音乐播放器好吗?实际上我做到了,但是当我尝试获取歌曲列表并获取它们的持续时间时遇到了问题,我必须为每首歌曲创建音频元素,这浪费了大量数据 所以有纯 js 代码或其他没有静态编写持续时间的代码? 这是我的代码
songs.map((song) => {
if(!song.hasOwnProperty("duration")){
let aud = new Audio();
aud.src = `audios/${song.audioName}.mp3`
aud.addEventListener('loadedMetadata',() => {
let durationAud = aud.duration;
song.duration = durationAud;
})
}
})
}
解决方法
您可以通过在数据库中使用音频文件的元数据创建一行来解决这个问题。然后,您将通过 AJAX 调用在前端请求该数据。