我使用以下代码使用CreateJS库加载和播放声音。这样可以正常工作,但问题是当无法加载文件时都不会调用回调,例如服务器上不存在声音(这是一个有效的用例)。
如何更改此代码,以便在加载文件时发生错误时,它会调用我的错误回调函数?
// define example play sound function
function playMySound(loadFileName, callbackDone, callbackError){
var queue = new createjs.LoadQueue(false);
queue.installPlugin(createjs.Sound);
queue.on("fileload", function(evt){
var instance = createjs.Sound.play(loadFileName, createjs.Sound.INTERRUPT_EARLY, 0, 0, false);
instance.addEventListener("complete", function(){
createjs.Sound.removeSound(loadFileName);
// call done callback
if(callbackDone){
callbackDone();
}
});
});
queue.on("error", function(evt){
console.error("Sound could not be loaded");
// call error callback
if (callbackError){
callbackError();
}
});
queue.loadFile(loadFileName, false);
queue.load();
}
//define callback functions
var callbackDone = function(){console.log("Done playing..")};
var callbackError = function(){return alert('This sound does not exist');};
// try to play sound
playMySound("/path/to/my/sound.mp3",callbackDone,callbackError);