在Javascript Windows应用商店中加载许多音频文件
Loading many Audio files in Javascript Windows Store App
我在Windows商店应用程序中播放音频时遇到困难。我正在使用JavaScript。代码如下。
当我尝试播放200多个声音(平均大小15KB)中的一个声音时,听起来像是太空堡垒卡拉狄加的赛昂人正在攻击我的应用程序。如果我等待足够长的时间,它是可以的,或者如果声音阵列较少,那么它显然加载得也更快。
是否有事件或某种方法可以确定应用程序何时准备好播放所有声音?还是更好的方法?
var play = new Array("over", "200", "sounds", "in", "this", "list", "that", "average", "15KB");
for (var i = 0; i< play.length; ++i){
tmpAudio = new Audio("/sound/" + words[i] + ".mp3");
play[i] = tmpAudio;
}
something.onClick = function () {
play[soundPos].play();
}
问题是,我相信在for循环中,您主要要做的是首先将所有声音文件加载到内存中(缓存过多),这会降低速度。
我建议进行一些更改:
1-使用[]创建阵列
2-缓存var arrayLength=play.length并在循环中使用它,而不是i<play.length,因为这将针对每个元素进行检查。
3-事实上,我建议你去掉循环,在需要的时候(onclick)加载音频文件(为了用户友好,在那里放一些加载图像或画布)。
为此,你可能需要重写一些代码,比如
var play = { sound1: urlWord, sound2: urlWord, sound3: urlWord,......};
虽然不是数组(数组在JS解释器中实现得很奇怪)您可以在下面的链接中循环使用它:主要用于的对象迭代上的stackoverflow链接
点击:
something.onClick = function () {
//if the below works or else just use a temp var
new Audio("/sound/" + play[soundPos] + ".mp3").play();
}
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Emberjs应用程序加载在除Index之外的所有路由上
- 在GWT中高效地从服务器加载许多图像
- 谷歌地图API加载缓慢,有许多标记
- 许多请求在页面加载时(需要.js)
- 加载许多 svg 文件并更改填充
- 在html上快速加载许多图像
- 在Javascript Windows应用商店中加载许多音频文件
- 正在加载许多javascript文件
- MVC3在视图中预加载许多图像
- 在ExtJS中加载许多数据
- 最快的方式来加载许多js文件和变量
- Javascript iframe加载时间函数的许多url
- 在Meteor中加载具有许多订阅的小块数据
- 如何在HTML文件的头文件中包含一个加载了许多javascript的通用文件
- 许多图像加载性能HTML/Javascript
- Javascript:从没有base64-dataURL的自定义API将许多图像加载到DOM中