Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Prelojs+;howler audio没有';不玩_Javascript_Jquery_Howler.js_Preloadjs - Fatal编程技术网

Javascript Prelojs+;howler audio没有';不玩

Javascript Prelojs+;howler audio没有';不玩,javascript,jquery,howler.js,preloadjs,Javascript,Jquery,Howler.js,Preloadjs,我试图建立我的第一个网站。 我在本地工作,所以如果你需要一个在线网站来调试它,我可以上传它。 我想在第一次访问时创建一个预加载部分,其中显示预加载条/%进度,并在显示页面之前加载所有元素。 我正在做音频部分和网站的预加载。 为了完成这一部分,我将使用howler.js进行音频管理,并将preload js.js用于预加载部分。 我无法解决的问题是在mp3加载的完整功能下启动mp3。 下面是我使用的代码 这是howler的音乐部分 var baseurl = document.location.o

我试图建立我的第一个网站。 我在本地工作,所以如果你需要一个在线网站来调试它,我可以上传它。 我想在第一次访问时创建一个预加载部分,其中显示预加载条/%进度,并在显示页面之前加载所有元素。 我正在做音频部分和网站的预加载。 为了完成这一部分,我将使用howler.js进行音频管理,并将preload js.js用于预加载部分。 我无法解决的问题是在mp3加载的完整功能下启动mp3。 下面是我使用的代码

这是howler的音乐部分

var baseurl = document.location.origin;
var soundfolder = baseurl+'/alink/wp-content/themes/alink/media/sounds/';

//SOUNDS EFFECTS
var bgmusic = [soundfolder+'background.mp3', soundfolder+'background.ogg'];

//Music background
var musicbg = new Howl({
    src: [bgmusic[0], bgmusic[1]],
    loop: true,
    volume: 0.5,
    preload: false,
});
这是prealodjs的预加载部件

//PRELOADER
var manifest;
var preload;
function setupManifest() {
    manifest = [{
        src:  baseurl+"/alink/wp-content/themes/alink/media/sounds/background.mp3",
        id: "mp3file"
    }
    ];
}
function startPreload() {
    preload = new createjs.LoadQueue(true);
    preload.on("fileload", handleFileLoad);
    preload.on("progress", handleFileProgress);
    preload.on("complete", loadComplete);
    preload.on("error", loadError);
    preload.loadManifest(manifest);
}
function handleFileLoad(event) {
    console.log("A file has loaded of type: " + event.item.type);
}

function loadError(evt) {
    console.log("Error!",evt.text);
}


function handleFileProgress(event) {
}

function loadComplete(event) {
    console.log("Finished Loading Assets");
    musicbg.play();
}
setupManifest();
startPreload();
根据一些教程和js库指南,我在howler调用中输入了“preload:false”参数

没有预加载部分和“preload:false”参数,音乐部分可以完美工作。 通过插入预加载程序的参数和代码部分,当调用loadComplete()函数时,音乐不会启动。(在控制台中,该函数被正确调用

我真的不知道问题出在哪里,所以我问你我做错了什么。我认为缺少一个部分,从preloadjs函数加载的文件与howler调用无关,它在缓存中找不到mp3文件


非常感谢您的帮助。

如果您使用PrelodJS加载音频,而不使用SoundJS“installed”来帮助预加载,则音频只能作为HTMLAudio加载,这是非常有限的。我相当确定Howler使用WebAudio上下文,因此它只会在需要时重新加载音频

PreloJS实际上只用于加载要播放的WebAudio声音。事实上,它实际上使用了大量共享代码来下载和准备播放的音频。这不一定是出于设计(防止使用其他库),但WebAudio在预加载音频缓冲区时使用共享音频上下文,Prelojs知道如何与SoundJS共享该上下文。Howler可能与此类似,它使用知道如何使用的音频上下文进行预加载

作为CreateJS库的维护者,我当然有偏见,但如果您想使用PrelodJS预加载音频,那么SoundJS是比Howler更好的选择

var queue = new createjs.LoadQueue();
queue.installPlugin(createjs.Sound); // Tell PreloadJS to use SoundJS to load audio
// ... other queue stuff

// After loading is done:
createjs.Sound.play("soundId");

希望有帮助。

非常感谢您的回答。据我所知,PreloJS依赖soundjs库来加载webaudio元素。我已经尝试过soundjs,但与howler不同,它没有fadein和fadeout功能(或者我错了?)。在1.0中没有本机淡入淡出功能。我们的2.0测试版已经支持该功能。如果有帮助的话,您可以直接在
volume
属性之间切换。非常感谢。我使用createjs,并使用tween为fadein和fadeout创建自定义函数。现在一切正常。现在我等待新的2.0库和出色的工作那些了不起的作品!