gpt4 book ai didi

javascript - 使用 video.js api 持续时间调用返回 0 而视频更长

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:48:19 26 4
gpt4 key购买 nike

好吧,我正在尝试利用 video.js 项目,因为它看起来非常棒!无论如何,我正在编写我的第一个与 api 交互的脚本,可以在下面找到。它基本上只是应该将当前播放时间输出到 div current_time ,视频标签的 id 是 my_stream 无论如何这是我所有的 javascript ...我遇到的问题是 playLength=0 并且当前时间在视频播放时永远不会更新并保持在 0(即永远不会超过 0)我不确定我在这里做错了什么......我遵循的 api 规则也可以在这里找到 video.js api docs

function current_time(){
_V_("my_stream").ready(function(){

var myPlayer = this;

// EXAMPLE:

var playLength = myPlayer.duration();

do
{
var position = myPlayer.currentTime();
var myTextArea = document.getElementById('time_count');
myTextArea.innerHTML = position;
}
while(position < playLength);


});

}

window.onload = current_time

任何使用 API 实现任何东西的人的任何帮助,或者只是看到我所做的愚蠢的事情,将不胜感激,谢谢!

最佳答案

您在播放开始前将持续时间分配给 playLength。如果您分配它时它为零,它将保持为零。检查 API doc 中的注释“注意:视频必须在知道持续时间之前开始加载,对于 Flash,可能要等到视频开始播放后才能知道。”

您似乎只关心视频播放时的锻炼时长。只使用 timeupdate 事件会好得多。

var myPlayer;
var myTextArea = document.getElementById('time_count');

videojs('my_stream').ready(function(){
myPlayer = this;
myPlayer.addEvent('timeupdate', onProgress);
});

function onProgress() {
myTextArea.innerHTML = myPlayer.currentTime();
}

这应该在 DOM 加载后执行(使用 window.onload 或 jQuery 的 $(document).ready()),或者在视频和 #time_count 元素之后的主体中的脚本标记中执行。

关于javascript - 使用 video.js api 持续时间调用返回 0 而视频更长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16311830/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com