我正尝试在jQuery中使用.keydown()事件播放声音。我希望声音能够快速播放,但是当我以每秒3次的速度执行keydown事件时,似乎存在滞后时间。使用jQuery播放声音时摆脱滞后时间
这里是我的示例代码的jsfiddle:http://jsfiddle.net/pfrater/FRudg/3/
我使用的声音和播放音频html标签:
<audio controls id="sound" preload="auto">
<source src="http://www.wavlist.com/soundfx/011/duck-baby.wav" type="audio/wav"/>
</audio>
<audio controls id="sound2" preload="auto">
<source src="http://rezound.sourceforge.net/examples/chirp.wav" type="audio/wav"/>
</audio>
<audio controls id="sound3" preload="auto">
<source src="http://www.all-birds.com/Sound/downychirp.wav" type="audio/wav"/>
</audio>
,这里是我的jQuery:
$(document).ready(function() {
var playing;
$(document).bind("keydown", function(key) {
playing = undefined;
switch(parseInt(key.which, 10)) {
case 65:
playing = $("#sound").get(0);
break;
case 83:
playing = $("#sound2").get(0);
break;
case 68:
playing = $("#sound3").get(0);
break;
};
if (playing) {
playing.play();
}
}).on("keyup", function() {
if(playing){
playing.pause();
playing.currentTime=50;
playing = undefined;
}
});
});
有谁知道摆脱这种滞后的方法吗?另外,我将要播放的实际文件是mpegs。上面的只是一个例子。
感谢您的帮助,
保罗
什么浏览器?我正在使用铬合金在一台蹩脚的Windows机器上测试它,这很好。 – epascarello
@保罗它也适用于这里,就好了。 – AbdelElrafa
我正在使用Safari。是的,它播放声音很好,但我希望它变得更快。有什么办法可以做到吗? – logicForPresident