我有一个视频和一系列的视频评论。每个评论都有一个与视频相关的特定时间。比如视频1有3条评论。第15秒一个,第30秒一个,最后一个评论在第45秒
我可以显示所有的注释。然而,相反,我希望每个评论都显示在其相关的视频时间。例如,注释1应该只出现在第15秒,并持续到第30秒,然后被第二个注释取代,以此类推。
我使用JW播放器播放视频,可以获得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; }
}
);