アンカータグがクリックされたときに再生されるオーディオファイルがあります。アンカータグが再度クリックされた場合、音声を一時停止させたいのですが、この後半を実行するためのJavaScriptについて十分に知りません。クリックするアンカータグのコンテンツを変更したくありません。タグをクリックするたびにオーディオファイルを開始および一時停止するだけです。
これは私がこれまでに持っているもので、少なくともサウンドファイルを再生可能にします:
<audio id="audio" src="/Demo.mp3"></audio>
<a onClick="document.getElementById('audio').play()">Click here to hear.</a>
必要なことを行うためのVanilla Javascriptの方法。
注:ネイティブjsアプローチの複数の賛成票に関する他の質問へのコメントに気づき、OPにはjquery
タグがありません。
(WORKING EXAMPLE
:
SOLN 1
:(イベントを使用する最初のsoln)
var myAudio = document.getElementById("myAudio");
var isPlaying = false;
function togglePlay() {
if (isPlaying) {
myAudio.pause()
} else {
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のコメント に基づくmyAudio.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>
var audioElement= document.getElementById("audio-player");
function togglePlay() {
if (audioElement.paused) {
audioElement.play();
}
else {
audioElement.pause();
}
};
JQueryを使用して、これを切り替えることができます。
<a id="music-button" style="cursor:pointer;">
<img src="http://i.stack.imgur.com/LT3WE.png"></a>
<audio id="playMusic" autoplay>
<source src="sound.mp3">
</audio>
<script type="text/javascript">
$('#music-button').toggle(
function () {
document.getElementById('playMusic').play();
},
function () {
document.getElementById('playMusic').pause();
}
);
</script>