HTML5 AUDIO永久循环不同的来源

时间:2016-01-07 05:30:35

标签: javascript html5 audio

您好,我很难在不同的音频播放器中循环播放。我尝试了各种各样的方法,从我认为优雅开始:在一个播放器上切换src并加载新的src并播放。每次它都拒绝工作所以我的修改已经变得越来越粗糙到现在尝试4个单独的音频播放器此时我所关心的只是让这个该死的东西起作用。

var ear = document.getElementById('ear'),
    ogg = document.getElementById('ogg'),
    mp3 = document.getElementById('mp3'),
    sounds = ['laughing', 'gull', 'reel', 'snore'],
    counter = 0,
    loop = 0,
    activate = 0,
    p = document.getElementsByTagName('p')[0];

function loopPrep(){
   audio.remove();
   for (var i = 0; i < sounds.length; i++) {
            var elem =
                        "<source id='ogg' src=media/"+sounds[i]+".ogg type='audio/ogg'>"+
                        "<source id='mp3' src=media/"+sounds[i]+'.mp3 type="audio/mpeg">';
           var temp = document.createElement('audio');
           document.getElementsByTagName('body')[0].appendChild(temp);
           var a = document.getElementsByTagName('audio')[i];
           a.innerHTML=elem;
       }; 
        document.getElementsByTagName('audio')[0].addEventListener('onended', function(){ document.getElementsByTagName('audio')[1].play(); });  
      document.getElementsByTagName('audio')[1].addEventListener('onended', function(){  document.getElementsByTagName('audio')[2].play(); });
      document.getElementsByTagName('audio')[2].addEventListener('onended', function(){  document.getElementsByTagName('audio')[3].play(); });
      document.getElementsByTagName('audio')[3].addEventListener('onended', function(){ document.getElementsByTagName('audio')[0].play(); });
       document.getElementsByTagName('audio')[0].play();
              };


function playNext(){
    if (counter == 3){
        loop = 1; activate = 1; loopPrep();
    } else { counter++; };
    ogg.setAttribute('src', 'media/'+sounds[counter]+".ogg");
    mp3.setAttribute('src', 'media/'+sounds[counter]+".mp3");
}

1 个答案:

答案 0 :(得分:-1)

我意识到我的事件听众被'冒犯'并且应该'已经'结束'。 onended用于内联html执行。

有时间返回并使用一个音频播放器重写它并切换src并加载和播放。