播放HTML5视频时如何暂停特定的HTML5音频

时间:2016-07-27 13:45:54

标签: javascript html5 audio video

参考http://america.wtf/Shadex

该网站包含自动播放的音频。但是有一个视频页面。我想拥有它,以便在播放视频时自动暂停音乐

<div id="videos" style="z-index:1" onClick="document.getElementById('sitemusic').pause();"><br />
<div align="center" id="videobox">Splash
<video style="z-index:-1;" width="400" controls>
  <source src="media/videos/splash.mp4" type="video/mp4">
  <source src="media/videos/splash.ogg" type="video/ogg">
  Your browser does not support HTML5 video.
</video>
</div>
</div>

<audio id="sitemusic" controls autoplay>
  <source src="media/turbo_grid.ogg" type="audio/ogg">
  <source src="media/turbo_grid.mp3" type="audio/mpeg">
Your browser does not support the audio element.
  <script>
  var video = document.currentScript.parentElement;
  video.volume = 0.1;
  </script>
</audio>

1 个答案:

答案 0 :(得分:0)

请参阅下面的更新样本:

  • 播放视频时暂停音频
  • 暂停视频时播放音频

请注意,我从视频元素中移除了onClick,并在id元素中添加了明确的<video>,以便直接引用它

<div id="videos" style="z-index:1"><br />
<div align="center" id="videobox">Splash
<video style="z-index:-1;" width="400" controls id="video">
    <source src="media/videos/splash.mp4" type="video/mp4">
    <source src="media/videos/splash.ogg" type="video/ogg">
    Your browser does not support HTML5 video.
</video>
</div>
</div>

<audio id="sitemusic" controls autoplay>
  <source src="media/turbo_grid.ogg" type="audio/ogg">
  <source src="media/turbo_grid.mp3" type="audio/mpeg">
  Your browser does not support the audio element.
  <script>
    var audio = document.currentScript.parentElement;
    audio.volume = 0.1;

    var video = document.getElementById("video");
    // this event listener reacts to "play" happening on video element and enacts pause on the audio element
    video.addEventListener('play', function (){document.getElementById("sitemusic").pause()},false);
    // this event listener reacts to "pause" happening on video element and enacts play on the audio element
    video.addEventListener('pause', function (){document.getElementById("sitemusic").play()},false);
  </script>
</audio>