将 HTML 文本同步并突出显示为音频

2023-11-21

如果有必要,我可以更详细地解释,但本质上我需要做的是与音轨同步对 HTML 文本进行 CSS 更改 - 即与音频播放同步突出显示单词/短语。我还需要通过单击文本来控制音频播放。我有很好的 HTML/CSS 能力,但我对原始 js 不太擅长,所以我希望有一种 jQuery 方法。我希望有人能引导我走向最好的方向。

提前谢谢了,

svs


为了便于使用,我建议结合使用 jQuery 和爆米花.js适用于任何您想要将媒体与 HTML 集成的地方,反之亦然。看到这个jsfiddle 帖子举个例子。

根据记录,如果 jsfiddle 消失,代码如下:

HTML

<audio id="greeting" src="https://dl.dropboxusercontent.com/u/17154625/greeting.ogg" controls></audio>

<div id="text">
   <span id="w1" class="word" data-start="1.0">Hello</span>,
   and <span id="w2" class="word" data-start="2.0">welcome</span>
   to Stack <span id="w3" class="word" data-start="3.0">Overflow</span>.
   Thank you for asking your question.
</div>​

CSS

.word {
   color: red;
}
.word:hover, .word.selected {
    color: blue;
    cursor: pointer;
}​

JS

var pop = Popcorn("#greeting");

var wordTimes = {
    "w1": { start: 1, end: 1.5 },
    "w2": { start: 1.9, end: 2.5 },
    "w3": { start: 3, end: 4 }
};

$.each(wordTimes, function(id, time) {
     pop.footnote({
        start: time.start,
        end: time.end,
        text: '',
        target: id,
        effect: "applyclass",
        applyclass: "selected"
    });
});

pop.play();

$('.word').click(function() {
    var audio = $('#greeting');
    audio[0].currentTime = parseFloat($(this).data('start'), 10);
    audio[0].play();
});​
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 HTML 文本同步并突出显示为音频 的相关文章