[英]How to play a sound on key press in input field without delay?
我的目标是播放类似于手机键盘工作原理的点击声音文件,但是我在此处找到的每种方法似乎都因声音文件重叠而延迟,例如,当我在搜索字段中键入内容时,声音有时会根据播放速度而有所不同我键入。
我正在使用以下代码:
$("#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
但是这种方法有时会单击,有时不会。
如果您的哔哔声很短,并且您将pause()
并将currentTime
重置为零,则它似乎工作得很好。
$("#search").on("keyup",function(){
//console.log("ok");
$("#beep")[0].pause();
$("#beep")[0].currentTime=0;
$("#beep")[0].play();
});
暂停和替换音频文件的开头是窍门。 否则,如果and事件在文件结束之前发生,则该文件已经在播放...这给人以“跳过”事件的印象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.