Повторите несколько аудио после воспроизведения всех аудио несколько раз, используя JavaScript - PullRequest
0 голосов
/ 05 июля 2018

У меня есть некоторый код, написанный для воспроизведения аудио (3 аудио или более), каждый звук воспроизводится несколько раз. Я хочу внести изменения, чтобы снова воспроизвести все аудиозаписи

Пример для более подробного объяснения

У меня есть

audio1, затем audio2, затем audio3

Что я могу сделать сейчас, когда:

audio1 будет проигрываться 3 раза, затем
audio2 будет проигрываться 3 раза, затем
audio3 будет проигрываться 3 раза, затем остановится

Я не хочу, чтобы он останавливался, мне нужно, чтобы он снова воспроизводился с самого начала: audio1 3 раза и audio2 3 раза и audio3 3 раза снова, а затем остановился.

Код здесь:

function startReading(1){


    var aCount = 3;

    // Start Reading - Play the Audio
    // -------------------------------------
    var repeatTimes = document.getElementById('repeatA').value;
    (function play(c){ 
        audio.play(); 
        audio.onended = function (){   

            if(c >= repeatTimes ){  
                if(i <= aCount){//and not reached the last audio
                        i++;
                        startReading(i);//play next audio
                }
            } else {//we didnt reached the third play, lets keep going...
                play(c+1);  
            }
        };
    })(1)//start with 1

}

1 Ответ

0 голосов
/ 07 июля 2018

Я нашел решение.

Что мне нужно сделать, это проверить i, больше ли это, чем количество аудио, если оно больше, затем начать чтение с начала и сделать i = 1, и сделать переменную chk для проверки каждый раз, когда я повторите все аудио, чтобы остановить, если chk> (требуется повторное время).

Просто означает, что я начну рекурсию с самого начала.

Код будет:

var chk = 1;
function startReading(1){


var aCount = 3;

// Start Reading - Play the Audio
// -------------------------------------
var repeatTimes = document.getElementById('repeatA').value;
(function play(c){ 
    audio.play(); 
    audio.onended = function (){   

        if(c >= repeatTimes ){  
            if(i <= aCount){//and not reached the last audio
                    i++;
                    if(i <= aCount) startReading(i);
                    else if (repeatTimes > 1 && chk < repeatTimes ){
                            i = 1;
                            chk++;
                            startReading(i);
                    }
            }
        } else {//we didnt reached the third play, lets keep going...
            play(c+1);  
        }
    };
})(1)//start with 1

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...