javascript - 如何用按钮控制背景音乐?

标签 javascript html

我试过两个版本

第一个自动播放可以在 Google Chrome 上运行,但我如何使用可以播放或暂停音频的按钮进行控制?

 <embed name="pop" src="pop.mp3" loop="true" hidden="true" autostart="true">

第二个自动播放无法在 Google Chrome 上运行,但我可以使用 IE 或 FireFox 中的按钮控制它

<audio id="myAudio">
<source src="pop.mp3" type="audio/mp3">
</audio>

按钮

<button onclick="playAud()" type="button">Play</button>
<button onclick="pauseAud()" type="button">Pause</button>

和 Javascript

var aud = document.getElementById("myAudio"); 

function playAud() { 
aud.play(); } 

function pauseAud() { 
aud.pause(); } 

那么我该如何处理这个问题呢?

我想要在后台自动播放音频
然后我可以使用按钮播放或暂停它

最佳答案

你只需要在初始化时触发播放函数:

var aud = document.getElementById("myAudio");

function play() {
  aud.play();
}

function pause() {
  aud.pause();
}

aud.play(); // this will do the trick :)
<audio id="myAudio">
<source src="https://wiki.selfhtml.org/local/Europahymne.mp3" type="audio/mp3">
</audio>
<button onclick="play()" type="button">Play</button>
<button onclick="pause()" type="button">Pause</button>


旧的解决方案:

您可以像我在这里那样删除/添加您的嵌入元素。这可能是 hacky,但它可能是适合您的解决方案。

var audiowrapper = document.getElementById('audio-wrapper');
var audio = document.getElementById('audio');

function play() {
  if (!audiowrapper.hasChildNodes()) audiowrapper.appendChild(audio);
}

function pause() {
  if (audiowrapper.hasChildNodes()) {
    while (audiowrapper.firstChild) {
      audiowrapper.removeChild(audiowrapper.firstChild);
    }
  }
}
#audio-wrapper {
  position: absolute;
  top: -300px !important;
}
<div id="audio-wrapper">
  <embed id="audio" name="pop" src="https://wiki.selfhtml.org/local/Europahymne.mp3" loop="true" hidden="true" autostart="true">
</div>
<button onclick="play();" type="button">Play</button>
<button onclick="pause();" type="button">Pause</button>

关于javascript - 如何用按钮控制背景音乐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53521050/

相关文章:

javascript - casperjs 按钮点击不导航到下一页

javascript - 如何一次存储数组中的两个值

javascript - 在 URL 中转义 Base64 字符串?

ios - 动态 CSS 未在 iOS 中加载

javascript - WP 中的 JSON 与 GET/POST 方法(安全问题)

javascript - 单击“应用”按钮并插入到另一个表中时从面板获取名称

javascript - 将 Javascript 代码与呈现的 HTTP 一起发送到客户端的正确方法是什么?

javascript - 带有输入字段的重复 DIV

html - CSS伪类回退?

javascript - 在angularjs中每X分钟生成一次时间数组