第二个音频文件意外循环

Second Audio Files Loops Unexpectedly

本文关键字:循环 意外 文件 音频 第二个      更新时间:2023-09-26

我希望两个音频文件一个接一个地播放,然后停止,只使用一个音频标签。问题是当第二个音频文件播放时,它会重复一段时间,然后停止。我认为这是一个冒泡的问题,所以我使用了e.stopImmediatePropagation()但这不起作用。我也尝试了e.preventDefault() e.stopPropagation()return false.这些都不起作用。我觉得我的代码可能已经关闭了,所以如果有人可以告诉我出了什么问题以及更好的方法来解决这个问题,我们将不胜感激。

$('#audio').on({
    'ended' : function(e) {
        this.src= 'sounds/new_speech.mp3';
        this.play();
        $('#audio').on({
            'ended' : function(){
                document.querySelector('#audio').src= 'sounds/new_sound.mp3';
            }
        });
        e.stopImmediatePropagation();
    }
});

您可以为播放多首曲目的一个标签重复使用同一事件:

<audio id=audio controls autoplay 
         src="http://ia700706.us.archive.org/27/items/3112011-08-06/3.03.ComeOriginal.mp3"></audio>
<script>  
    var tracks=[
        "http://ia700706.us.archive.org/27/items/3112011-08-06/3.04.WildNights.mp3",
        "http://ia700706.us.archive.org/27/items/3112011-08-06/3.05.Eons.mp3"
    ];
    $("#audio").on({ended:function(e) {
        var track=tracks.shift();
        if(track){
            this.src= track;
            this.play();
        }
    }});
</script>

现场演示:http://pagedemos.com/74yy2ur65zev/