Javascript 无法通过JS加载所有声音
我正在使用css3和html5开发一种javascript游戏。游戏目前使用多种声音。它们中的大多数都非常短,最多3秒。我在开始时加载它们,将它们存储在数组中,并根据用户操作播放它们。下面是它的代码:Javascript 无法通过JS加载所有声音,javascript,html,Javascript,Html,我正在使用css3和html5开发一种javascript游戏。游戏目前使用多种声音。它们中的大多数都非常短,最多3秒。我在开始时加载它们,将它们存储在数组中,并根据用户操作播放它们。下面是它的代码: var Sounds=[]; var SoundsLoaded = 0; function AddSound( filename ) { var sound = new Audio(); //creating a new sound for the game
var Sounds=[];
var SoundsLoaded = 0;
function AddSound( filename )
{
var sound = new Audio(); //creating a new sound for the game
sound.src = filename;
sound.loop = false;
sound.autoplay=false;
sound.autobuffer=true;
sound.preload="auto";
Sounds.push( sound ); //add it to the container
}
function LoadSounds()
{
for( i = 0; < src.length; i++) //altogether about 150 files
AddSound( src[i] );
for( i = 0; i < Sounds.length; i++ )
{
Sounds[i].addEventListener( "loadeddata", function()
{
SoundsLoaded++;
if( SoundsLoaded == Sounds.length )
{
AllSoundsLoaded(); //continue when all sounds are ready to use
}
});
Sounds[i].addEventListener( "error", function()
{
alert(this.error.code); //alerts with code 4
alert(this.networkState); //alerts with state 3
});
Sounds[i].load();
}
}
在Chrome和Firefox中一切正常,但opera和IE存在一个问题:
加载少量声音后,出现错误:
媒体错误SRC不受支持4和网络错误源3
我很奇怪为什么会有错误,因为:
我肯定有音频文件
chrome和firefox正确加载所有文件
所有音频文件都在同一目录中
所有音频文件都使用相同的编解码器audio/x-vorbis+ogg或audio/mpeg。我使用的src设置为before-mp3,用于IE ogg,用于所有其他
有几次opera加载的文件少于32个,但在9/10的情况下opera加载!!!确切地156个声音中有32个,这些文件并不完全相同
6.有什么解决的建议吗?我希望避免将更多声音合并到一个声音中,而只播放适当的部分
经过测试的浏览器:Opera11.62、ff 11、chromium 18、ie 9、
有人见过这种行为吗?
我忘了还是应该设置一些音频元素属性?
opera和IE是否对加载的声音数量有缓存限制?是否可以使用JS更改它