javascript - 如何通过一个按钮或链接切换音频播放()暂停()?

标签 javascript html audio

我有一个音频文件,它会在单击 anchor 标记时播放。如果再次单击 anchor 标记,我希望音频暂停,我只是对 javascript 了解不够,无法完成后半部分。我不想更改他们点击的 anchor 标签的内容,我只想让音频文件在他们点击标签时开始和暂停。

这是我目前所拥有的,至少可以让声音文件播放:

<audio id="audio" src="/Demo.mp3"></audio>
<a onClick="document.getElementById('audio').play()">Click here to hear.</a>

最佳答案

一种 Vanilla Javascript 方式来完成您需要的事情。

注意:我注意到对其他问题的评论对原生 js 方法进行了多次投票,并且看到 OP 没有 jquery 标签。

所以工作示例:

SOLN 1:(我的初始 soln 使用事件)

var myAudio = document.getElementById("myAudio");
var isPlaying = false;

function togglePlay() {
  isPlaying ? myAudio.pause() : myAudio.play();
};

myAudio.onplaying = function() {
  isPlaying = true;
};
myAudio.onpause = function() {
  isPlaying = false;
};
<audio id="myAudio" src="http://www.sousound.com/music/healing/healing_01.mp3" preload="auto">
</audio>
<a onClick="togglePlay()">Click here to hear.</a>

SOLN 2:(使用基于 dandavi's commentmyAudio.paused 属性)

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

function togglePlay() {
  return myAudio.paused ? myAudio.play() : myAudio.pause();
};
<audio id="myAudio" src="http://www.sousound.com/music/healing/healing_01.mp3" preload="auto">
</audio>
<a onClick="togglePlay()">Click here to hear.</a>

关于javascript - 如何通过一个按钮或链接切换音频播放()暂停()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27368778/

相关文章:

javascript - 由于错误,无法使用 Angular FormsModule

javascript - 使用 webpack 导入 Material 设计标志性字体

html - Twitter-Bootstrap - 将简单元素内联

android - 通过 WiFi 在 Android 手机之间流式传输语音

php - 结束后如何加入2个mp3文件

javascript - json 响应 Angular 2 中的错误字符

javascript - 编辑输入类型时如何更改值属性?

javascript - Ajax - 访问 protected 资源

html - Wrapper 内部或外部 HTML5 语义主要,哪个是最佳实践?

php - php中的音频动态范围压缩