在Jquery中使用音频同步突出显示文本

时间:2010-07-30 07:46:35

标签: jquery flash audio synchronization

我需要在许多网页上同步文字和音频。

播放音频时,文字应逐字逐句地突出显示(不是逐字逐句或按字符突出显示,因此只有短语的开头才需要同步)。

我不想使用仅限闪存的解决方案,我更喜欢使用更友好的HTML。

我想使用两个插件的组合:

然后我可以编写一个jquery脚本来循环各种短语。 第一个问题是JPlayer只有百分比播放事件而不是精确的时间轴事件,因此我需要将每个短语的较小音频文件中的语音文本的完整mp3音频分开(需要长时间的编辑工作和预加载管理)。

有更好的解决方案吗?我应该回到更简单的完整swf解决方案吗?

1 个答案:

答案 0 :(得分:3)

您可以做的是在javascript中编写时间轴脚本。当音频开始播放时,您可以为时间线上的每个操作设置超时。这将要求您的音频播放没有任何延迟。

它看起来像这样:

   <div>one</div>
   <div>two</div>
   <div>three</div>

<script>
// this is the timeline
var actions = [  { time : 1, action : function() { $('div:eq(0)').css('color','red') } },
                 { time : 1.5, action : function() { $('div:eq(1)').css('color','green') } },
                 { time : 2, action : function() { $('div:eq(2)').css('color','blue') } } ];

$(document).ready( function() {
        // execute the timeline
        for( var i in actions ) {
            setTimeout( actions[i].action, actions[i].time * 1000 );
        }
});

</script>