【发布时间】:2013-11-05 01:50:19
【问题描述】:
我正在尝试使用 jQuery 中的 .keydown() 事件播放声音。我希望声音能够快速播放,但是当我以超过每秒 3 次的速度执行 keydown 事件时似乎会有延迟。
这是我的示例代码的 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;
}
});
});
有人知道摆脱这种滞后的方法吗?此外,我将播放的实际文件是 mpeg。以上只是一个例子。
感谢您的帮助,
保罗
【问题讨论】:
-
什么浏览器?我正在一台糟糕的带有 chrome 的 windows 机器上测试它,它很好。
-
@Paul 它在这里也可以,很好。
-
我正在使用 Safari。是的,它播放的声音很好,但我希望它走得更快。有什么办法可以做到吗?
标签: javascript jquery html