使用jQuery仅限制音频播放一段时间

时间:2014-10-15 07:33:09

标签: javascript jquery html audio

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

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

1 个答案:

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