Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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 HTML5音频赢得';我有时不玩_Javascript_Html_Html5 Video_Html5 Audio - Fatal编程技术网

Javascript HTML5音频赢得';我有时不玩

Javascript HTML5音频赢得';我有时不玩,javascript,html,html5-video,html5-audio,Javascript,Html,Html5 Video,Html5 Audio,在我的应用程序中,我创建了10个音频对象,并将它们存储在浏览器变量中。根据场景,我将选择其中一个,并将其分配给一个全局变量。然后我播放那个声音。一段时间后,我将停止并清除来自全局变量的音频 每当我播放声音时,我都会验证readystate。我捕捉播放和暂停事件 问题在于,有时声音听不见,但仍会触发播放和暂停事件。我不能一直复制它(它是随机发生的) 如果有人遇到这种问题,请告诉我 函数Sound(){} 尝试 { 如果(新建音频().canPlayType(“音频/wav”)!=”&新建音频()

在我的应用程序中,我创建了10个音频对象,并将它们存储在浏览器变量中。根据场景,我将选择其中一个,并将其分配给一个全局变量。然后我播放那个声音。一段时间后,我将停止并清除来自全局变量的音频

每当我播放声音时,我都会验证readystate。我捕捉播放和暂停事件

问题在于,有时声音听不见,但仍会触发播放和暂停事件。我不能一直复制它(它是随机发生的)

如果有人遇到这种问题,请告诉我

函数Sound(){}
尝试
{
如果(新建音频().canPlayType(“音频/wav”)!=”&新建音频().canPlayType(“音频/wav”)!=“否”){
Sound.extn=“wav”//没有I18N
}
否则{
Sound.extn=“mp3”//没有I18N
}
}
捕获(e){
}
Sound.init=函数(soundsobj)
{
for(soundsobj中的var tunename)
{
var audioobj=新音频(soundsobj[tunename]);
audioobj.setAttribute(“自动缓冲”、“真实”);
audioobj.addEventListener('loadeddata',function(){
Sound.cache[tunename]=此;
});
audioobj.addEventListener('loadedmetadata',function(){
这个.currentTime=0;
});
声音。_Sound_PLAYER.addEventListener(“play”,function(){console.log(this.readyState);},false);
声音。_Sound_PLAYER.addEventListener(“暂停”,function(){console.log(this.readyState);},false);
}
}
Sound.playTune=函数(tunename,duration)
{
if(Sound.cache[tunename])
{
var cachedsound=Sound.cache[tunename];
if(cachedsound.readyState==4)
{
cachedsound.currentTime=0;
声音。_Sound_PLAYER=cachedsound;
声音。播放(持续时间);
}
其他的
{
删除Sound.cache[tunename];
var audioobj=新音频(soundsobj[tunename]);
audioobj.setAttribute(“自动缓冲”、“真实”);
audioobj.addEventListener('loadeddata',function(){
Sound.cache[tunename]=此;
声音。_Sound_PLAYER=这个;
声音。播放(持续时间);
});
}
}
}
Sound.play=功能(持续时间)
{
声音。_Sound_PLAYER.loop=true;
声音。声音。播放器。播放();
clearTimeout(Sound.cleartimer);
Sound.cleartimer=setTimeout(函数(){Sound.stop()},持续时间*1000);
}
Sound.stop=function()
{
尝试
{
if(声音。\声音\播放器)
{
声音。声音。播放器。暂停();
}
声音。_Sound_PLAYER=未定义;
}
捕获(e){}

}
这是否只在谷歌Chrome上发生?请分享您的代码。到目前为止,我在chrome中面临这个问题。共享了我的代码。您的代码在代码段的html部分。我将其移动到js部分,在比较值时使用双等号。还有助于拼写正确-你的函数中有两个额外的c。这只发生在Google Chrome上吗?请分享你的代码。到目前为止,我在chrome中面临这个问题。共享了我的代码。您的代码在代码段的html部分。我将其移动到js部分,在比较值时使用双等号。此外,它还有助于拼写正确-您的函数中有两个额外的c。