在Javascript Windows应用商店中加载许多音频文件

Loading many Audio files in Javascript Windows Store App

本文关键字:加载 许多 音频 文件 Javascript Windows 应用      更新时间:2023-09-26

我在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();        
    }