Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.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 Windows应用商店应用程序中加载许多音频文件_Javascript_Windows_Microsoft Metro_Windows Store Apps - Fatal编程技术网

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

在Javascript Windows应用商店应用程序中加载许多音频文件,javascript,windows,microsoft-metro,windows-store-apps,Javascript,Windows,Microsoft Metro,Windows Store Apps,在Windows应用商店应用程序中播放音频时遇到困难。我正在使用JavaScript。代码如下 当我尝试播放平均大小为15KB的200多个声音阵列中的声音时,听起来像是来自太空堡垒卡拉狄加的赛昂人在攻击我的应用程序。如果我等待的时间足够长,或者如果声音数组较少,那么显然加载速度也会更快 是否有事件或某种方式来确定应用程序何时准备好播放所有声音?还是更好的方法 var play = new Array("over", "200", "sounds", "in", "this", "list", "

在Windows应用商店应用程序中播放音频时遇到困难。我正在使用JavaScript。代码如下

当我尝试播放平均大小为15KB的200多个声音阵列中的声音时,听起来像是来自太空堡垒卡拉狄加的赛昂人在攻击我的应用程序。如果我等待的时间足够长,或者如果声音数组较少,那么显然加载速度也会更快

是否有事件或某种方式来确定应用程序何时准备好播放所有声音?还是更好的方法

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 3-事实上,我建议您删除循环,并在需要时单击加载音频文件,然后在其中放置一些加载图像或画布,以方便用户

为此,您可能需要重新编写一些代码

var play = { sound1: urlWord, sound2: urlWord, sound3: urlWord,......};
虽然不是,但是数组在JS解释器中实现得很奇怪 您可以通过以下链接在其上循环:

在onclick中:

  something.onClick = function () {
//if the below works or else just use a temp var
    new Audio("/sound/" + play[soundPos] + ".mp3").play();        
    }

谢谢我踢自己,也谢谢你!是的,我真正需要做的就是点击新的音频并播放。再次感谢。