处理keydown和keydup[jquery]
有这样一个处理程序:处理keydown和keydup[jquery],jquery,audio,keydown,keyup,Jquery,Audio,Keydown,Keyup,有这样一个处理程序: <script> function start() { var audio = new Audio('URL'); audio.play(); } function stop() { var aud = document.getElementById(id); aud.pause(); aud.currentTime = 0; } $(document).keydown(function(e) { if (e.
<script>
function start() {
var audio = new Audio('URL');
audio.play();
}
function stop() {
var aud = document.getElementById(id);
aud.pause();
aud.currentTime = 0;
}
$(document).keydown(function(e) {
if (e.keyCode == 81) {
return start();
}
});
$(document).keyup(function(event) {
if (event.keyCode == 81) {
return stop();
}
});
</script>
函数start(){
var audio=新音频(“URL”);
音频播放();
}
函数停止(){
var aud=document.getElementById(id);
aud.pause();
aud.currentTime=0;
}
$(文档).keydown(函数(e){
如果(e.keyCode==81){
返回开始();
}
});
$(文档).keyup(函数(事件){
如果(event.keyCode==81){
返回停止();
}
});
脚本运行正常,但有点错误。也就是说,它工作一秒钟,但随后开始重新运行递归函数start(),这就是为什么声音会相互影响。
我还需要使脚本只在按下时工作(再现声音),在释放时停止(典型合成器的原理)。
请帮我设置键盘向下键和键盘向上键。
谢谢大家! 我建议您设置新变量。类似于
soundIsPlaying=false
并在start()
方法的开头将其设置为true,在stop
方法的结尾将其设置为back-gofalse
。您只想在声音尚未打开时开始播放声音
原因是,用户可能会更快地按下“开始”按钮,然后声音才能完成,并且您必须以某种方式检查是否必须现在启用音乐
另外,请确保将此变量设置在程序的上限范围内,以便在启动/停止方法调用之间保持其状态。我不知道它会有什么帮助,但这是我的完整脚本。使用鼠标可以很好地工作,但键盘更难。我无法捕捉事件按键,事件按键。