必要に応じてさらに詳しく説明できますが、基本的には、音声トラックと同期して HTML テキストに CSS の変更を適用する必要があります。つまり、音声再生と同期して単語/フレーズを強調表示します。また、テキストをクリックしてオーディオ再生を制御する必要もあります。HTML/CSS は得意ですが、生の js はあまり得意ではないので、jQuery のアプローチがあることを期待しています。誰かが私を最良の方向に導くことができることを願っています。
よろしくお願いします。
svs
必要に応じてさらに詳しく説明できますが、基本的には、音声トラックと同期して HTML テキストに CSS の変更を適用する必要があります。つまり、音声再生と同期して単語/フレーズを強調表示します。また、テキストをクリックしてオーディオ再生を制御する必要もあります。HTML/CSS は得意ですが、生の js はあまり得意ではないので、jQuery のアプローチがあることを期待しています。誰かが私を最良の方向に導くことができることを願っています。
よろしくお願いします。
svs
使いやすさのために、メディアを HTML と統合したい場合には、jQuery とPopcorn.jsの組み合わせをお勧めします。例については、この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();
});