Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript使三个html音频元素按顺序重复工作_Javascript_Html - Fatal编程技术网

如何使用javascript使三个html音频元素按顺序重复工作

如何使用javascript使三个html音频元素按顺序重复工作,javascript,html,Javascript,Html,如何使三个HTML音频元素按顺序工作,每个元素重复三次或更多 意味着我将使第一个音频工作三次,然后第二个工作三次,然后第三个三次 我有这个代码,但我不想让音频元素重复: HTML和JavaScript: 功能播放(j){ var audio=document.getElementById('audio'+j);//声明音频 audio.play();//播放音频 addEventListener('end',function(){//音频结束后,它将检查是否将再次播放 j++; 如果(j功能播

如何使三个HTML音频元素按顺序工作,每个元素重复三次或更多

意味着我将使第一个音频工作三次,然后第二个工作三次,然后第三个三次

我有这个代码,但我不想让音频元素重复:

HTML和JavaScript:

功能播放(j){
var audio=document.getElementById('audio'+j);//声明音频
audio.play();//播放音频
addEventListener('end',function(){//音频结束后,它将检查是否将再次播放
j++;
如果(j
功能播放(j){
var audio=document.getElementById('audio'+Math.floor(j));//声明音频
audio.play();//播放音频
addEventListener('end',function(){//音频结束后,它将检查是否将再次播放
j+=1/3;
如果(j=3){//如果每个音频超过三个

如果(我真的很感谢你提供了很棒的解决方案,特别是第二个,我使用它,但我需要停止前一个音频,因为它是旧的和新的音频,那么所有旧的和新的音频,我不知道为什么?但最后它工作得很好。谢谢
function play(j){
  var audio = document.getElementById('audio'+Math.floor(j)); //declaring audio
  audio.play();                                 //playing audio
  audio.addEventListener('ended', function (){  //after audio ends, it will check weather it will play again or no 
     j+=1/3;
     if(j<=3){
       play(j);
     }
   })   
 }
function playthree(i){
  (function play(c){
     var audio = document.getElementById('audio'+i); //declaring audio
     audio.play();                                 //playing audio
     audio.addEventListener('ended', function (){  //after audio ends, it will check weather it will play again or no 
        if(c>=3 ){//if more than three per audio
            if(i<3){//and not reached the last audio
              playthree(i+1);//play next audio
            }//else end all
        }else{//we didnt reached the third play, lets keep going...
         play(c+1);  
        }
     });
  })(1)//start with 1
}