Javascript 从videoJS显示视频持续时间

Javascript 从videoJS显示视频持续时间,javascript,jquery,video,video.js,Javascript,Jquery,Video,Video.js,我正在使用jQuery开发HTML5视频播放器。现在,我的视频播放器工作得很好,但我想获得视频持续时间的变量,并在纯HTML页面中显示它 因此,您可以从这里了解有关此Jquery视频播放器的更多信息: 我认为视频持续时间的变量是:myPlayer.duration() 如何在HTML中显示此值 以下是显示播放器的HTML代码: <video id="vemvo-player" class="video-js vjs-default-skin" controls autoplay="t

我正在使用jQuery开发HTML5视频播放器。现在,我的视频播放器工作得很好,但我想获得视频持续时间的变量,并在纯HTML页面中显示它

因此,您可以从这里了解有关此Jquery视频播放器的更多信息:

我认为视频持续时间的变量是:
myPlayer.duration()

如何在HTML中显示此值

以下是显示播放器的HTML代码:

  <video id="vemvo-player" class="video-js vjs-default-skin" controls autoplay="true" width="950" height="534"
      data-setup="{}">
    <source src="[var.base_url]/uploads/[var.video_play]" type='video/flv' />
  </video>

这就是我试图显示此变量的内容,但在视频播放器上显示为4min时,显示为=“0”:

  <video id="vemvo-player" class="video-js vjs-default-skin" controls autoplay="true" width="950" height="534"
      data-setup="{}">
    <source src="[var.base_url]/uploads/[var.video_play]" type='video/flv' />
  </video>
<div id="duration"></div>
<script type="text/javascript">
    _V_("vemvo-player").ready(function(){
        var myPlayer = this;
        var howLongIsThis = myPlayer.duration();
        $('#duration').html('Duration: ' + howLongIsThis);
    });
</script>

_V_u3;(“vemvo播放器”).ready(函数(){
var myPlayer=this;
var howLongIsThis=myPlayer.duration();
$('#duration').html('duration:'+howLongIsThis);
});

我的错误在哪里?

当您使用jQuery时,这可以更容易地完成:)您可以使用编辑dom元素的html内容。您的代码将如下所示:

<div id="duration"></div>

<script type="text/javascript">
    _V_("vemvo-player").ready(function(){
        var myPlayer = this;
        var howLongIsThis = myPlayer.duration();
        $('#duration').html('Duration: ' + howLongIsThis);
    });
</script>

_V_u3;(“vemvo播放器”).ready(函数(){
var myPlayer=this;
var howLongIsThis=myPlayer.duration();
$('#duration').html('duration:'+howLongIsThis);
});

您可以试试这个。这对我有用

var myPlayer = videojs('vemvo-player');

    if (myPlayer.readyState() < 1) {
        // wait for loadedmetdata event
        myPlayer.one("loadedmetadata", onLoadedMetadata);
    }
    else {
        // metadata already loaded
        onLoadedMetadata();
    }

    function onLoadedMetadata() {
        alert(myPlayer.duration());
        $('#duration').html("Duration: " + myPlayer.duration());
    }
var myPlayer=videojs('vemvo-player');
if(myPlayer.readyState()<1){
//等待loadedmetdata事件
myPlayer.one(“loadedmetadata”,onLoadedMetadata);
}
否则{
//元数据已加载
onLoadedMetadata();
}
函数onLoadedMetadata(){
警报(myPlayer.duration());
$('#duration').html(“duration:+myPlayer.duration());
}

它仍然表示持续时间为0。如何显示真实的持续时间?当执行日志记录
howLongIsThis
var时,您在控制台中看到了什么?您在控制台中的意思是什么?我不明白。为什么它说it's=0?问题在哪里?我如何在控制台中执行此操作?您是否可以在线创建问题的演示,也许可以打开,以便我们可以看到它?可能是的精确副本的副本。请避免多次问同一个问题。也看到你的答案应该有一个解释。希望这些评论会对你有所帮助。非常感谢。
var player = videojs('my-video', {
    fluid:false, // videojs settings
    controls:true,
    height: '300'          
  });
$(document).ready(function(){
  console.log(player.duration()); 
 // will return video duration. Can't be used while page is loading.

  console.log(player.currentTime()); 
 // will return current time if video paused at some time. Intially it would be 0.

});