Javascript 从x秒到y秒播放音频

Javascript 从x秒到y秒播放音频,javascript,jquery,html,audio,Javascript,Jquery,Html,Audio,我正在尝试从第二个x到第二个y播放音频文件。我会尽量用更好的方式解释 我有一个文本,我想要一个音频文件播放时,我点击一个字。关键是,我不想播放整个音频文件,只想播放一段表示点击单词的音频。 我想使用一个单一的音频文件和我的文本中的所有单词(不是每个单词都有一个单一的音频文件),并提取单词所在的音频部分 现在我有了音频文件,我知道每个单词开始和结束的确切时间 例如: 我的文字是:“大家好,你好吗?我很好。” 当我点击“everyone”时,我想得到一段显示“everyone”的音频 JAVASCR

我正在尝试从第二个x到第二个y播放音频文件。我会尽量用更好的方式解释

我有一个文本,我想要一个音频文件播放时,我点击一个字。关键是,我不想播放整个音频文件,只想播放一段表示点击单词的音频。 我想使用一个单一的音频文件和我的文本中的所有单词(不是每个单词都有一个单一的音频文件),并提取单词所在的音频部分

现在我有了音频文件,我知道每个单词开始和结束的确切时间

例如:

我的文字是:“大家好,你好吗?我很好。” 当我点击“everyone”时,我想得到一段显示“everyone”的音频

JAVASCRIPT:

<script src="jquery-1.11.1.min.js"></script>
<script>

$(document).ready(function() {
    $('#1').click(function (){
            //play audiofile from 0 sec to 1 sec
        });
    $('#2').click(function (){
            //play audiofile from 1 sec to 2 sec
        });
    $('#3').click(function (){
            //play audiofile from 2 sec to 3 sec
        });
    $('#4').click(function (){
            //play audiofile from 3 sec to 4 sec
        });

});
</script>

$(文档).ready(函数(){
$('#1')。单击(函数(){
//从0秒到1秒播放音频文件
});
$('#2')。单击(函数(){
//从1秒播放音频文件到2秒
});
$('#3')。单击(函数(){
//从2秒到3秒播放音频文件
});
$('#4')。单击(函数(){
//从3秒到4秒播放音频文件
});
});
HTML:


你好,世界!终身
我已经使用了函数.play()和.pause(),但它们对我不好,因为我想随机获取单词

提前谢谢你

试试看:

函数动态语音(文本){
var msg=新演讲(文本);
window.speechSynthesis.speak(msg);
}

dynamicVoice(“你好世界”)使用类“word”向每个元素添加一个数据字:

<p>
  <span class="word" data-word="hello" id="1">Hello </span><span class="word" data-word="world" id="2">World! </span><span class="word" data-word="life" id="3">Life </span><span class="word" data-word="long" id="4">long</span>
</p>

在数组
word\u timings
中,您可以定义哪个单词在什么秒/时间开始和结束。

到目前为止,您的代码是什么?提供更多信息,如单词的秒数。提供您的html结构…查看我的更新答案您是否创建了音频元素?请将其添加到您的标记中这是一个好主意,但首先:它不能完全满足OPs要求,其次,它没有得到所有browsersIt perfect的广泛支持!非常感谢你!!唯一的问题是“audio.pause().currentTime=start;”在没有“.pause()”的情况下工作。工作的代码是:audio.currentTime=start;真的谢谢你!
<p>
  <span class="word" data-word="hello" id="1">Hello </span><span class="word" data-word="world" id="2">World! </span><span class="word" data-word="life" id="3">Life </span><span class="word" data-word="long" id="4">long</span>
</p>
(function($) {
  $(function() {
    var audio = $('audio').get(0),
      word_timings = {
        'hello': {start: 0, end: 1},
        'world': {start: 1, end: 2},
        'life': {start: 2, end: 3},
        'long': {start: 4, end: 4}
      };

    $('.word').click(function() {
      var word = $(this).data('word'),
        start = word_timings[word].start,
        end = word_timings[word].end;

      audio.pause().currentTime = start;
      audio.play();
      $(audio).on('timeupdate', function() {
        if (this.currentTime >= end) {
          this.pause();
          $(audio).off('timeupdate');
        }
      });

    });
  });
})(jQuery);