我想预加载整个mp3文件,以便当Internet断开时该页面在计算机和移动设备上都能正常工作。我找到并尝试了以下代码,这些代码似乎可以在Windows 7桌面上运行,但不能在Android上运行。 Android不会在fetch语句上失败,但是似乎在“ .then(r => r.blob())”语句上失败。应该先声明r吗?为什么android失败的任何想法。我无法访问Android控制台。
fetch("https://foo.com/foo2/foo4.mp3")
.then(r => r.blob()) // could be xhr.responseType = 'blob'
.then(blob => {
aud = new Audio(URL.createObjectURL(blob));
document.body.appendChild(aud);
console.log('Fully loaded and cached until the page dies...')
});
答案 0 :(得分:0)
有一个preload
属性,您可以尝试`
此枚举属性旨在向浏览器提供提示 关于作者认为将带来最佳用户体验的信息。它 可能具有以下值之一:
- 无:指示不应预加载音频。
- 元数据:表示仅提取音频元数据(例如长度)。
- 自动:表示可以下载整个音频文件,即使不希望用户使用也可以下载。空的 字符串:自动值的同义词。
如果未设置,则预加载为默认值 值是浏览器定义的(即每个浏览器可能都有其自己的默认值 值)。规范建议将其设置为元数据。