我正在尝试为我正在开发的GameAPI制作跨设备/浏览器图像和音频预加载方案.音频文件将预加载,并在完成后发出回调.
问题是,音频不会在慢速页面加载时开始加载,但通常会在第二次尝试时起作用,可能是因为它缓存了它并且知道它存在.
我把它缩小到了audio.load()函数.摆脱它解决了这个问题,但有趣的是,我的摩托罗拉机器人需要这个功能.
您对HTML5音频预加载有哪些经验?
这是我的代码.是的,我知道在单独的功能中加载图像可能会导致竞争条件:)
var resourcesLoading = 0;
function loadImage(imgSrc) {
//alert("Starting to load an image");
resourcesLoading++;
var image = new Image();
image.src = imgSrc;
image.onload = function() {
//CODE GOES HERE
//alert("A image has been loaded");
resourcesLoading--;
onResourceLoad();
}
}
function loadSound(soundSrc) {
//alert("Starting to load a sound");
resourcesLoading++;
var loaded = false;
//var soundFile = document.createElement("audio");
var soundFile = document.createElement("audio");
console.log(soundFile);
soundFile.autoplay = false;
soundFile.preload = false;
var src = document.createElement("source");
src.src = soundSrc + ".mp3";
soundFile.appendChild(src); …
Run Code Online (Sandbox Code Playgroud)