javascript - JW Player 根据耗时执行操作

标签 javascript php video jwplayer

我有一个视频以及对该视频的一系列评论。每条评论都有与视频相关的特定时间。例如视频 1 有 3 条评论。一个在第 15 秒,另一个在第 30 秒,最后一条评论在第 45 秒。

我可以显示所有评论。但是,我希望每个评论都显示在其相关的视频时间。例如,评论 1 只能出现在第 15 秒,并持续到第 30 秒,然后被第二条评论取代,依此类推。

我正在使用 JW Player 播放视频,并且可以使用 getPosition() 函数来获取视频的当前播放时间。它应该是一个简单的 JavaScript 代码来实现这一点,但不幸的是我是 JS 的初学者。

我自己实现此目的的想法是使用 onTime 函数,并针对每个位置检查服务器中是否有评论,如果有则检索。如:

<script>
      jwplayer("container1").onTime(
           function(event) { 
            {
               var comment = get_comment_of(event.position);
               setText(comment);
               function setText(text) {
                   document.getElementById("message").innerHTML = text;
               }

            });
</script>

但是,这是一个昂贵的功能,并且会向服务器发送大量请求。

最佳答案

好的,最好的解决方案是我在页面加载时将注释预加载到 JavaScript 数组中,然后使用 onTime 函数在注释发生时显示它们。这样就不需要在每个 onTime 帧上发送新请求。由于评论已经在客户端可用

var timeArray = <?php echo json_encode($timeArray) ?>;
var commentArray = <?php echo json_encode($commentArray) ?>;
jwplayer("container1").onTime(
    function(event) {
       for (var i = 0; i < timeArray.length; i++)
       {
           var time = timeArray[i]
           var comment = commentArray[i];
           if (event.position >= time) {
               setText(comment);
           }
       }


       function setText(text) {
           document.getElementById("message").innerHTML = text;                     }
       }
);

关于javascript - JW Player 根据耗时执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22274255/

相关文章:

javascript - 弹出窗口的父窗口未重新加载

javascript - 如何在 native react 中使选项卡在选项卡栏中垂直居中

php - 如何将base64图像解码保存到laravel中的公用文件夹

html - 全屏居中 html5 视频直播

javascript - typescript 计算数组中的重复项并按每个项目的计数对结果进行排序

javascript - 使用 JavaScript,如何重置表单中的所有选择,以便选择每个选项的第一个选项?

php - 流明框架路由不起作用

php - 显示 channel 中的视频列表 - Vimeo 高级 API

c++ - 通过服务器在互联网上传输加密视频的跨平台方法

android - ffmpeg 库不工作