javascript - 我想按 jquery 的顺序播放多个 mp3

标签 javascript jquery mp3

我想在 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();

最佳答案

尝试使用preload属性。

关于javascript - 我想按 jquery 的顺序播放多个 mp3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7967535/

相关文章:

javascript - 嵌套 for 循环增量产生不一致的结果

javascript - 在 angularjs 中仅重新加载页面一次

audio - rtmp音频消息(0x08)格式(mp3)

FFMPEG波形透明,背景纯色

javascript - CSS Flex Center 和 Masonry JS 冲突

javafx - 无法通过 javafx 2.2 媒体播放器播放 mp3 文件

javascript - React JS - 在 onClick 事件后触发 PHP

javascript - ASP.NET MVC5 我不想合并 CSS 文件

javascript - jQuery 用点替换逗号不起作用

php - 在cakephp中更新表时如何删除条目?