我试图在 jwplayer 开始播放之前获取视频的持续时间。我尝试在onReady事件回调中调用getDuration(),但它返回-1。当我在 onPlay 事件回调中调用 getDuration () 时,我得到了正确的值。有什么想法吗?
这是我的代码:
<video src="movie.mp4" id="video" width="800" height="600"></video>
<script type="text/javascript">
jwplayer ('video').setup ({
flashplayer: '/js/mediaplayer-5.10/player.swf',
width: 600,
height: 400,
events: {
onReady: function () {
var duration = this.getDuration();
alert ('ready, duration: ' + duration);
},
onPlay: function (state) {
alert ('play, duration: ' + this.getDuration());
}
}
});
</script>
最佳答案
这大约是我处理这个问题的方式:
var duration = 0;
jwplayer().onReady(function() {
if (duration == 0) {
// we don't have a duration yet, so start playing
jwplayer().play();
}
});
jwPlayer().onTime(function() {
if (duration == 0) {
// we don't have a duration, so it's playing so we can discover it...
duration = jwplayer().getDuration();
jwplayer().stop();
// do something with duration here
} else {
...
}
}
关于jwplayer - 如何在播放前获取视频时长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11438047/