在 keydown() 上立即重放音频
Posted
技术标签:
【中文标题】在 keydown() 上立即重放音频【英文标题】:Instantly replay audio on keydown() 【发布时间】:2017-02-09 10:50:27 【问题描述】:我在按下键盘上的键时尝试播放音频。出于某种原因,在音频文件播放完之前,我无法重播相同的声音。
这是我的 html 设置:
<audio id="65" src="assets/sounds/tom.wav"></audio>
<audio id="83" src="assets/sounds/tink.wav"></audio>
<audio id="68" src="assets/sounds/kick.wav"></audio>
...
和 jQuery
$(document).keydown(function(e)
var code = e.which;
$("#"+code).get(0).play();
);
所以,如果 tom.wav 是 4 秒长,我可以在键盘上敲击“A”任意多次。在这 4 秒过去之前,它不会再次播放。
有什么想法吗?
【问题讨论】:
【参考方案1】:要重新启动音频文件,您需要先将其暂停,然后将其设置为 currentTime
至 0
,然后再使其再次播放。试试这个:
$(document).keydown(function(e)
var audio = $('#' + e.which)[0];
audio.pause();
audio.currentTime = 0;
audio.play();
);
【讨论】:
太棒了。谢谢!像魅力一样工作。以上是关于在 keydown() 上立即重放音频的主要内容,如果未能解决你的问题,请参考以下文章
PyQt5:QMediaPlayer 无法从 QBuffer 重放音频