我如何从video.js播放器中收听“timeupdate”事件?

时间:2015-04-14 03:49:19

标签: javascript html5 video.js

虽然我已经能够使用vanilla HTML5播放器收听“timeupdate”事件,但我似乎无法使用video.js。

这是我的代码:

<!DOCTYPE html>
<html>
<head>
  <link href="video-js.css" rel="stylesheet">
    <script src="video.js"></script>
    <script src="jquery.min.js"></script>
</head>

<body>
    <video id="testvid" class="video-js vjs-default-skin" controls  width="640" height="480" data-setup='{}'>
        <source src="testvideo.mp4" type="video/mp4">
    </video>
</body>

</html>

<script>
videojs('testvid').ready(function(){
    var myPlayer = this;
    $(myPlayer).bind('timeupdate', function(){
        console.log('the time was updated to: ' + this.currentTime);
    });
});
</script>

我是否误解了video.js运作的基本方式?

2 个答案:

答案 0 :(得分:12)

你实际上可以在ready()的回调中注册事件,这是更好的解决方案,因为在之前的一个事件注册仍然可以在ready()之后完成。使用以下代码段:

videojs('example_video_1').ready(function () {
    this.on('timeupdate', function () {
      console.log(this.currentTime());
    })
  });

答案 1 :(得分:6)

我必须在视频加载之前添加事件监听器。我通过将脚本更改为:

来解决问题
<script>
$('#testvid').on('timeupdate', function(){
    console.log('the time was updated to: ' + this.currentTime);
});

videojs('testvid').ready(function(){
    var myPlayer = this;
});
</script>