Newer
Older
IntroQuiz2019 / public / js / player.js
// 再生するファイルリスト
var fileList = [
{ name : 'Cat_Life', url : 'cat_life.mp3' },
{ name : 'Ray_at_midsummer', url : 'Ray_at_midsummer.mp3' }
];
// Audioオブジェクト
var audioObj = new Audio();
var playFlag = "select";
// 再生するプレイリストを表示
var playList = '<ul>';
for(var i=0; i<fileList.length; i++){
playList += '<li><button type="button" onclick=start_music("/music/'+fileList[i].url+'","'+fileList[i].name+'")>';
playList += fileList[i].name + '</button></li>';
}
playList += '</ul>';
document.getElementById('playListArea').innerHTML = playList;
// 再生開始
function start_music(url, name){
  playFlag = false;
  audioObj.pause(); // 以前の音楽を停止させる
  audioObj = new Audio(url);
  audioObj.addEventListener('loadedmetadata', function() {
    var sec = '0' + Math.floor(audioObj.currentTime % 60);  // 秒数
    var min = '0' + Math.floor(audioObj.currentTime / 60);  // 分数
    sec = sec.substr(sec.length-2, 2);
    min = min.substr(min.length-2, 2);
    var totalSec = '0' + Math.floor(audioObj.duration % 60);    // 秒数
    var totalMin = '0' + Math.floor(audioObj.duration / 60);    // 分数
    totalSec = totalSec.substr(totalSec.length-2, 2);
    totalMin = totalMin.substr(totalMin.length-2, 2);
    crtTime.innerHTML = min+":"+sec+' ['+ totalMin+':'+totalSec +']';
  }, true);

  audioObj.addEventListener('timeupdate', function(){
    var sec = '0' + Math.floor(audioObj.currentTime % 60);  // 秒数
    var min = '0' + Math.floor(audioObj.currentTime / 60);  // 分数
    sec = sec.substr(sec.length-2, 2);
    min = min.substr(min.length-2, 2);
    var totalSec = '0' + Math.floor(audioObj.duration % 60);    // 秒数
    var totalMin = '0' + Math.floor(audioObj.duration / 60);    // 分数
    totalSec = totalSec.substr(totalSec.length-2, 2);
    totalMin = totalMin.substr(totalMin.length-2, 2);
    crtTime.innerHTML = min+":"+sec+' ['+ totalMin+':'+totalSec +']';
  }, true);

  document.getElementById('name').innerHTML=name;
  pButton.innerHTML = 'START';
}
// イベント設定
var crtTime = document.getElementById('ctime');
var pButton = document.getElementById('playButton');
// 再生ボタンのイベントを設定
pButton.addEventListener('click', function(){
  if (playFlag == false){
    playFlag = true;    // 再生フラグ:再生中にする
    audioObj.play();
    pButton.innerHTML = 'STOP';
  } else if (playFlag == true){
    playFlag = false; // 再生フラグ:停止中にする
    audioObj.pause();
    pButton.innerHTML = 'PLAY';
  } else {
    alert("曲をセットしてね!");
  }
}, true);