我有一个视频以及对该视频的一系列评论。每条评论都有与视频相关的特定时间。例如视频 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/