Javascript 使用jQuery将音频播放限制在特定的时间段内

Javascript 使用jQuery将音频播放限制在特定的时间段内,javascript,jquery,html,audio,Javascript,Jquery,Html,Audio,我有一个用例,需要在单击某个元素时播放音频。音频播放得很好,但持续时间比我想象的要长一点。我希望它在几秒钟后暂停(停止)。我可以提醒持续时间,我还尝试应用停止和/或暂停方法,这两种方法都不起作用。有什么想法吗?我很肯定你们中的一些人可能遇到过这样的情况。这是我的密码 jQuery var audioElement = document.createElement('audio'); audioElement.setAttribute('src', 'sound/crack.mp3

我有一个用例,需要在单击某个元素时播放音频。音频播放得很好,但持续时间比我想象的要长一点。我希望它在几秒钟后暂停(停止)。我可以提醒持续时间,我还尝试应用停止和/或暂停方法,这两种方法都不起作用。有什么想法吗?我很肯定你们中的一些人可能遇到过这样的情况。这是我的密码

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);
        };
    });
您必须监听当前播放位置更改时触发的事件。并检查事件处理程序中的位置

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.
    }
};

为什么使用
“loadedmetadata”
事件?这不是你的案子。您必须在
setInterval
(或
setTimeout
)回调中检查持续时间我对javascript比较陌生,请忽略任何noob错误。我会查一查。不过,我非常欣赏一个例子。非常感谢。我会试试这个然后再给你回复。时间更新后应该有逗号吗?你的代码对我有用。那是一吨。但是你有一个打字错误。您在
时间戳
参数后遗漏了一个逗号。我接受了你的回答。