第一个音频播放完毕后播放第二个音频

问题描述 投票:0回答:1

我有以下 HTML:

<audio autoplay id="background_audio">
      <source src="https://sporedev.ro/pleiade/hol.mp3" type="audio/mpeg">
</audio>

上面的代码在后台播放一些音乐。

<audio autoplay>
  <source src="https://sporedev.ro/pleiade/sounds/swoosh-enter.mp3" type="audio/mpeg">
</audio>

此代码在用户进入页面时播放旋风声。

我有以下JS:

<script>
    var audio = document.getElementById('background_audio');

    document.getElementById('mute').addEventListener('click', function (e)
    {
        e = e || window.event;
        audio.muted = !audio.muted;
        e.preventDefault();
    }, false);
</script>   

此代码用于当用户点击某个div时将背景音乐静音。

这是一个JSFiddle

我正在从事的项目的链接是这里

我正在尝试创建一个脚本,该脚本不会播放位于

audio
id 中的
background_audio
,直到经过一定秒数(例如,5 秒),以便旋风声音可以完成播放在开始音乐之前。

我对 SO 和 Google 做了一些研究,得出的结论是使用

preventDefault()

 的一些使用将是解决方案,但我未能实现该解决方案。

如何在 swoosh 声音播放完毕后制作

background_audio

 id 中的音乐?

javascript html html5-audio
1个回答
3
投票
您可以使用

onended

事件,在第一个音频结束后播放第二个音频。

var audio1 = document.getElementById("another_audio"); audio1.onended = function() { console.log('Playing background audio') var audio2 = document.getElementById("background_audio"); audio2.play(); };
<audio id="background_audio">
  <source src="https://sporedev.ro/pleiade/hol.mp3" type="audio/mpeg">
</audio>

<audio autoplay id="another_audio">
  <source src="https://sporedev.ro/pleiade/sounds/swoosh-enter.mp3" type="audio/mpeg">
</audio>

© www.soinside.com 2019 - 2024. All rights reserved.