###前提・実現したいこと
HTML5のビデオプレーヤーのコントロールをjavascriptでしています。音量の変化をさせることができません。アドバイス頂けると助かります。よろしくお願いします。
###発生している問題・エラーメッセージ
ブラウザのコンソールにはエラーメッセージはありません。
エラーメッセージ
###該当のソースコード
HTML
1<div class="video-box js-video-box"> 2 <video class="js-video" id="video"> 3 <source src="video.mp4" type="video/mp4" /> 4 </video> 5 <div id="video-control"> 6 <button class="video-play js-video-play">></button> 7 <input type="range" class="seekbar seekbar-time js-seekbar-time" value="0" min="0"> 8 <input type="range" class="seekbar seekbar-volume js-seekbar-volume" value="0.5" min="0" max="1" step="0.05"> 9 </div> 10 </div> 11 12<script> 13const videoArray = document.getElementsByClassName('js-video-box'); 14for(let i = 0; i < videoArray.length; i++) { 15 let videoBox = videoArray[i]; 16 let videoSource = videoBox.getElementsByClassName('js-video')[0]; 17 let playButton = videoBox.getElementsByClassName('js-video-play')[0]; 18 let timeSeekbar = videoBox.getElementsByClassName('js-seekbar-time')[0]; 19 let volumeSeekbar = videoBox.getElementsByClassName('js-seekbar-volume')[0]; 20 21 playButton.addEventListener('click',function(){ 22 if (videoSource.paused) { 23 videoSource.play(); 24 playButton.textContent = "||"; 25 } else { 26 videoSource.pause(); 27 playButton.textContent = ">"; 28 } 29 }, 30 false); 31 32 if (videoSource.readyState > 0) { 33 timeSeekbar.max = videoSource.duration; 34 } else { 35 videoSource.addEventListener('loadedmetadata', 36 function() { timeSeekbar.max = videoSource.duration; } 37 ); 38 } 39 40 videoSource.addEventListener("timeupdate", 41 function() { 42 timeSeekbar.value = videoSource.currentTime; 43 }, false); 44 45 46 volumeSeekbar.max = videoSource.volume; 47 videoSource.addEventListener('volumechange', 48 function() { 49 videoSource.volume = volumeSeekbar.value; 50 },false); 51} 52</script>
###試したこと
音量の調整の記述は、サンプルコードを参考にしました。元のコードでは音量調整のシークバーにaddEventListenerをしていましたが、videoタグの方に変えてみました。
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/01 07:22