最初に、デフォルトのhtml5標準コントロールを使用しないようにしています。可能であればjQueryを使用して喜んでもらいたいと思いますが、問題は。JavaScriptを使用してオーディオエレメントを制御する方法
現時点では、一度クリックすると一時停止ボタンに変わるいくつかの音楽を再生する再生ボタンを持っています。この一時停止ボタンは、明らかにクリックされた音楽を一時停止します。
私はいくつかの注釈を残して、私が試したことのいくつかを見ることができます。現在、再生ボタンは表示されますが、クリックすると何も起こりません。
ご協力いただければ幸いです。
HTML:
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="javascript/audio-controls.js"></script>
<link rel="stylesheet" href="css/menu.css">
</head>
<div id="content-container">
<audio id="music">
<source src="media/mexico-music.mp3" type="audio/mpeg"/>
</audio>
<button id="play-music-button" class="play"></button>
</div>
CSS:
#play-music-button {
height:60px;
width: 60px;
border: none;
background-size: 50% 50%;
background-position: center;
}
.play {
background: url("../assets/play.png") no-repeat;
}
.pause {
background: url("../assets/pause.png") no-repeat;
}
JS:
$(document).ready(function() {
var music = document.getElementById("music");
var play_music_button = document.getElementById("play-music-button");
function playAudio() {
if (music.paused) {
music.play();
play_music_button.innerHTML = "Pause";
/*play-music-button.className = "";
play-music-button.className = "pause";*/
} else {
music.pause();
play_music_button.innerHTML = "Resume";
/*play-music-button.className = "";
play-music-button.className = "play";*/
}
music.addEventListener('ended',function() {
play_music_button.innerHTML = "Play";
});
}
play-music-button.addEventListener("click", playAudio);
});
にボタンを設定する
ended
イベントリスナーを追加する必要があります有効な識別子)。 'addEventListener'を二度追加することで、何が起こるのかははっきりしません。 –doc ready関数内に追加するか外部に追加するかはわかりませんでしたので、現在の両方の理由になります。 @MikeMcCaughan – Xander