我有一个用例,我需要在点击元素时播放音频。音频播放正常但持续时间比我想象的要长。我希望它在一定秒后暂停(停止)。我可以提醒持续时间,我也尝试应用停止和/或暂停方法,这两种方法都不起作用。有什么想法吗?我很确定你们中的一些人可能遇到过这样的情况。这是我的代码。
jQuery
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', 'sound/crack.mp3');
$('#thanksBanner').click(function() {
audioElement.play();
});
audioElement.addEventListener("loadedmetadata", function(_event) {
var duration = audioElement.duration;
//TODO whatever
var ourDuration = duration - 1.5;
if (duration > ourDuration) {
audioElement.pause();
alert(duration);
};
});
答案 0 :(得分:1)
您必须收听当前播放位置发生变化时触发的timeupdate
事件。并在事件处理程序中检查该位置。
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', 'sound/crack.mp3');
$('#thanksBanner').click(function() {
audioElement.play();
setInterval(function() {
});
audioElement.addEventListener('timeupdate', function() {
var t = audioElement.currentTime;
if (t > audioElement.duration - 1.5) {
audioElement.pause();
alert(t); //can be removed once it works.
}
};