SoundJS如何/可以加载其他预加载程序加载的声音文件(如Pixi.Loader.Loader())
How/Can SoundJS load sound files loaded by other Preloader(like that of Pixi.loaders.Loader())?
我目前正在使用Pixi.js及其内置的Loader,当我浏览代码时,我注意到我也可以加载声音。我正在使用不同的声音加载程序,它是专门内置在SoundJS中的。
问题是,我必须管理两个不同的装载器才能完成这一任务。一个用于声音,另一个用于纹理。
我让Pixi.js为我加载声音文件,如下所示:
new PIXI.loaders.Loader()
.add("_assets/textures/p1_walk/Von.json")
.add("_assets/textures/p2_walk/Don.json")
.add("_assets/textures/p3_walk/Bon.json")
.add("_assets/textures/tiles.json")
.add("_assets/textures/textures.json")
//.add('bgm1' , '_assets/bgm/bgm.mp3')
.add('jump' , '_assets/sfx/jump.wav')
.add('pickupcoin' , '_assets/sfx/pickupcoin.wav')
.add('hit' , '_assets/sfx/hit.wav')
.add('hit1' , '_assets/sfx/hit1.wav')
.add('died' , '_assets/sfx/died.wav')
.on("progress" , function(loader , resource)
{
console.log("Finished loading : " + resource.name + " progress : " + loader.progress);
})
.once("complete" , function()
{
console.log("Finished loading assets");
//soundManifest = soundManifest.concat(
// [
// {id : "bgm1" , src : "_assets/bgm/bgm.mp3" }
// , {id : "jump" , src : "_assets/sfx/jump.wav" }
// , {id : "pickupcoin" , src : "_assets/sfx/pickupcoin.wav" }
// , {id : "hit" , src : "_assets/sfx/hit.wav" }
// , {id : "hit1" , src : "_assets/sfx/hit1.wav" }
// , {id : "died" , src : "_assets/sfx/died.wav" }
// ]);
//createjs.Sound.alternateExtensions = ['mp3' , 'ogg' , 'wav' ];
//createjs.Sound.addEventListener('fileload' , handleLoad);
//createjs.Sound.registerSounds(soundManifest);
SoundJS.play("jump");
loadingScene = new LoadingScene(renderer , screenSize);
})
.load();
不幸的是,这行不通。跳跃声不会播放。我不知道如何让SoundJS加载/播放一个完全不同/无关的加载程序已经加载的声音。
我不知道该怎么办,如何管理两个独立的装载机?我上一个的问题是,第一个加载程序能够给我0-100%的进度,这是我非常需要的,这样我就可以在进度栏中使用它。但是,这只是针对纹理,我想在百分比中包括Sounds,并决定也许我可以只使用loader,让SoundJS从那里加载文件。
这可能吗?
谢谢!
SoundJS只能播放已由SoundJS注册和加载的声音。使用私有API注册声音及其加载的数据可能是可能的,但这需要一些工作,而且没有官方方法。
你必须做的关键事情:
- 注册声音。AbstractPlugin完成了大部分工作,但需要一个"完整"事件来完成该过程
- 您可以强制执行complete(检查
AbstractPlugin._handlePreloadComplete
方法,该方法将加载的ArrayBuffer存储在_audioSources
散列中
你必须对每个声音都这样做。一旦声音被注册,并且每个ID都有必要的数据,SoundJS API就应该可以工作了。
这是一种有趣的方法,将其作为功能请求添加到SoundJS中可能是有意义的。
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Emberjs应用程序加载在除Index之外的所有路由上
- 在chrome.tabs.onCreated之后加载HTML页面
- 单击F5时如何停止页面加载
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 跟踪在页面加载时应用内联样式的JavaScript
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- jQuery Lazy加载动画滚动
- Ajax-loader.gif 在页面加载后结束
- 如何在angularjs中加载html和js时放置loader
- ExtJs 6-简单应用程序-Ext.Loader无法加载
- SoundJS如何/可以加载其他预加载程序加载的声音文件(如Pixi.Loader.Loader())
- jQuery loader -从0 - 100加载并做一些事情
- Three.js中的Collada Loader不会加载一个只有几个对象的场景
- 如何在rails中使用webpack和bootstrap-sass-loader加载bootstrap
- Loader,它还显示网页的加载百分比
- AS3使用Loader从服务器加载图像