Javascript 如何毫不延迟地在输入区的按键上播放声音?
我的目标是播放类似于手机键盘工作方式的点击声音文件,但我在这里找到的每种方法似乎都会延迟声音文件的重叠,即当我在搜索字段中键入时,声音有时会根据我键入的速度播放Javascript 如何毫不延迟地在输入区的按键上播放声音?,javascript,jquery,keydown,onkeydown,Javascript,Jquery,Keydown,Onkeydown,我的目标是播放类似于手机键盘工作方式的点击声音文件,但我在这里找到的每种方法似乎都会延迟声音文件的重叠,即当我在搜索字段中键入时,声音有时会根据我键入的速度播放 我正在使用以下代码: $("#search") // loop each menu item .each(function(i) { if (i != 0) { // only clone if more than one needed $("#beep") .clone() .a
我正在使用以下代码:
$("#search") // loop each menu item
.each(function(i) {
if (i != 0) { // only clone if more than one needed
$("#beep")
.clone()
.attr("id", "beep-" + i)
.appendTo($(this).parent());
}
$(this).data("beeper", i); // save reference
})
.keydown(function() {
$("#beep-" + $(this).data("beeper"))[0].play();
});
$("#beep").attr("id", "beep-0"); // get first one into naming convention
但是这种方法有时会导致单击,有时不会。如果您的嘟嘟声很短,并且如果您
暂停()
并将当前时间
重新定位为零。。。它似乎工作得很好
$("#search").on("keyup",function(){
//console.log("ok");
$("#beep")[0].pause();
$("#beep")[0].currentTime=0;
$("#beep")[0].play();
});
在音频文件的开头暂停和替换就是诀窍。否则,如果和事件发生在文件结束之前,则文件已在播放。。。这给人一种“跳过”事件的印象