я хочу играть несколько mp3 в порядке jquery - PullRequest
1 голос
/ 01 ноября 2011

Я хочу создать скрипт в javascript / jquery, который воспроизводит / произносит буквы определенного слова на заднем плане.

когда я вызываю функцию playWord ();В нем делятся буквы слова в div.

Например, слово «помощь».Должно быть написано: 'h' 'e' 'l' 'p'.Каждое письмо имеет файл .mp3.

До того, как следующая буква произойдет, она должна подождать, пока письмо полностью не будет написано.

Это то, что у меня есть, но это не правильно.Иногда время между буквами составляет 5 секунд.

<script type='text/javascript'>

var letterCounter = 0;
//the letter speed in ms
var spellAudioSpeed = 1000;

function playWord(){
    letterCounter = 0;
    //the word from the div
    playLetters($('#transWord').text().toLowerCase());
}

function playLetters(pWord){
    if(letterCounter < pWord.length){

        var letter = pWord.charAt(letterCounter);
        //create an new audio element
        var audioElement = document.createElement('audio');

        if(letter == ' '){
            audioElement.setAttribute('src', 'Letters/spatie.mp3');
        } else if(letter == '\''){
            audioElement.setAttribute('src', 'Letters/aanhalingsteken.mp3');
        } else if(letter == '\\"'){
            audioElement.setAttribute('src', 'Letters/dubbeleaanhalingsteken.mp3');
        } else if(letter == '/'){
            audioElement.setAttribute('src', 'Letters/schuinestreep.mp3');
        } else if(letter == '\\'){
            audioElement.setAttribute('src', 'Letters/schuinestreepachteruit.mp3');
        } else {
            audioElement.setAttribute('src', 'Letters/'+letter+'.mp3');
        }

        //couldnt find a better way to determine the duration.. ???
        audioElement.addEventListener('durationchange', function() {
            audioElement.play();
            letterCounter++;
            timeOut = setTimeout(function(){playLetters(pWord)},
            spellAudioSpeed + (audioElement.duration * 1000));
        }, true);

    } else if (letterCounter == pWord.length){
        //do stuff
        alert("finished");
    }
}

playWord();

1 Ответ

0 голосов
/ 01 ноября 2011

Попробуйте использовать атрибут preload .

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