Javascript 预加载一批音频文件的最明智的方法
对于我的应用程序,我需要预加载许多音频文件(大约20个) 我知道我可以使用一系列带有Javascript 预加载一批音频文件的最明智的方法,javascript,html,preload,Javascript,Html,Preload,对于我的应用程序,我需要预加载许多音频文件(大约20个) 我知道我可以使用一系列带有preload属性的标记,但是加载这些标记似乎不是最有序的方法 任何能使用单个音频播放器的建议,我们将不胜感激 您可以将fetch()和Promise.all()与.map()一起使用或for..of循环和承诺构造函数请求媒体资源作为Blob或ArrayBuffer并使用MediaSource在单个节点上播放,或者简单地将节点的src设置为下一个Blob文件的表示形式将Blob传递到URL.createObjec
preload
属性的
标记,但是加载这些标记似乎不是最有序的方法
任何能使用单个音频播放器的建议,我们将不胜感激 您可以将
fetch()
和Promise.all()
与.map()一起使用
或for..of
循环和承诺构造函数请求媒体资源作为Blob
或ArrayBuffer
并使用MediaSource
在单个
节点上播放,或者简单地将
节点的src
设置为下一个Blob
文件的表示形式将Blob
传递到URL.createObjectURL()
以创建Blob URL
您计划如何播放这些文件?您是否要对所有音频使用单个音频标记?它们是否都是相同的音频,但只是不同的类型?或者是20首不同的歌曲?我计划使用一个音频标签。每个音频剪辑都是不同的。它们是单个口语单词的1-2秒短语音片段。我计划使用$('.audioPlayer').trigger('play')代码>在jQuery中。你能再加一点解释吗?我以前从未使用过Blob、ArrayBuffer或MediaSource。@Joel See,让mediaResources=Promise.all([“media1.ext”、“media2.ext”、].map(url=>fetch(url)。然后(response=>response.Blob())。然后(blobs=>{console.log(blobs)//将媒体资源作为Blob进行填充。)。catch(err=>console.error(err))