jquery - HTML 5 音频播放速率和当前时间

标签 jquery html

我有一个 HTML 5 音频标签,我已经计算了每个单词的开始和结束时间。播放音频时,我获取音频的当前时间并比较每个单词的开始和结束时间(如果有任何单词匹配)然后突出显示该单词。

它工作正常。现在我想添加一个按钮来更改播放速率,例如 07、0.8、0.9、1.0、1.1、1.2。

那么我是否必须再次计算每个单词的开始和结束时间,或者它会在所有播放速率上给出相同的结果?

音频

<audio controls>
  
  <source src="http://www.arbordalepublishing.com/eBooks2/AnimalHelpersRehab/AnimalHelpersRehab p5.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>

HTML CODE TO HIGHLIGHT :- 
<span id="W1">Experts</span>
<span id="W2">who</span>
<span id="W3">care</span>
<span id="W4">for</span>
<span id="W5">sick</span>,
<span id="W6">hurt</span>,
<span id="W7">or</span>
<span id="W8">orphaned</span>
<span id="W9">wild</span>
<span id="W10">animals</span>
<span id="W11">are</span>
<span id="W12">called</span>
<span id="W13">wildlife</span>
<span id="W14">rehabilitators</span><span id="P15">.</span>
<span id="W16">They</span>
<span id="W17">are</span>
<span id="W18">far</span>
<span id="W19">more</span>
<span id="W20">than</span>
<span id="W21">critter</span>
<span id="W22">sitters</span>.

{id: "W1", start: 0, end: 1.266, highlighted: false}, 
{id: "W2", start: 1.266, end: 1.326, highlighted: false}, 
{id: "W3", start: 1.326, end: 1.606, highlighted: false}, 
{id: "W4", start: 1.606, end: 1.764, highlighted: false}, 
{id: "W5", start: 1.764, end: 2.203, highlighted: false}, 
{id: "W6", start: 2.203, end: 2.625, highlighted: false}, 
{id: "W7", start: 2.625, end: 2.901, highlighted: false}, 
{id: "W8", start: 2.901, end: 3.424, highlighted: false}, 
{id: "W9", start: 3.424, end: 3.736, highlighted: false}, 
{id: "W10", start: 3.736, end: 4.225, highlighted: false}, 
{id: "W11", start: 4.225, end: 4.388, highlighted: false}, 
{id: "W12", start: 4.388, end: 4.688, highlighted: false}, 
{id: "W13", start: 4.688, end: 5.402, highlighted: false}, 
{id: "W14", start: 5.402, end: 6.536, highlighted: false}, 
{id: "P15", start: 6.536, end: 7.147, highlighted: false}, 
{id: "W16", start: 7.147, end: 7.305, highlighted: false}, 
{id: "W17", start: 7.305, end: 7.49, highlighted: false}, 
{id: "W18", start: 7.49, end: 8.154, highlighted: false}, 
{id: "W19", start: 8.154, end: 8.787, highlighted: false}, 
{id: "W20", start: 8.787, end: 8.981, highlighted: false}, 
{id: "W21", start: 8.981, end: 9.372, highlighted: false}, 
{id: "W22", start: 9.372, end: 10.204, highlighted: false}

最佳答案

如果我理解正确你想做什么。您正在以相同的速率更改所有数字(比方说 0.8)。为什么不简单地创建一个用新按钮分配的变量,然后将每个数字乘以该变量。例如:

r = 0.8

{id: "W1", start: 0*r, end: 1.266*r, highlighted: false},

{id: "W2", start: 1.266*r, end: 1.326*r, highlighted: false},

当然乘法必须看起来更像:

parseFloat(1.266)*parseFloat(r)

关于jquery - HTML 5 音频播放速率和当前时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29096443/

相关文章:

javascript - 将所需的输入附加到现有表格中

javascript - 更改亮度滤镜

javascript - Jquery:从数组中删除 ""值而不使用每个值

javascript - 如何根据 php 条件隐藏和显示 html 表中的列

html - 如何在 HTML 页面中显示代码(特别是 C++)?

html - 如何防止 div 使用浏览器调整大小?

html - 浏览器滚动条全高

javascript - 使用 moment.js 验证输入年龄

html - 滚动到 ID 根本不起作用?怎么了?

jquery - 在给定特定宽度范围(媒体查询)的情况下使用 jquery 更改类名