添加事件侦听器以在 videojs 的运行时获取视频持续时间

Posted

技术标签:

【中文标题】添加事件侦听器以在 videojs 的运行时获取视频持续时间【英文标题】:to add event listener for getting video duration in run time in videojs 【发布时间】:2016-05-18 06:20:44 【问题描述】:

我想在使用任何事件监听器播放视频时监控视频时长。我正在使用videojs 进行视频播放。

我遇到了像playmyplayer.isPaused 这样的事件,但它们只触发一次。 myplayervideojs 的视频元素。 现在经过进一步研究,我得到了一个名为 on 的事件。 所以这里是代码:

myPlayer.on("play", myfun);

  function myfun() 
    console.log("myPlayer.currentTime()");
    console.log(myPlayer.currentTime());
    myfun();
  

这是我所期望的,它会给我currentTime,正如你所看到的,我正在递归调用myfun。 但是这个函数被调用了一百万次,但只给了我开始时间0

我什至尝试将myPlayer.currentTime() 放入setInterval,但这种方法不可靠,当然也不是一个好主意。

我使用了原生 javascript 事件监听器,但它们不太可能有用。

那么任何帮助为视频播放附加事件侦听器以便我可以获得播放持续时间?

【问题讨论】:

【参考方案1】:

play 事件仅在播放开始时触发。如果您想监控视频的进度,那么正确的事件是timeupdate。这是一个例子:

myPlayer.on("timeupdate", myfun);

function myfun() 
    console.log("myPlayer.currentTime()", myPlayer.currentTime());

【讨论】:

以上是关于添加事件侦听器以在 videojs 的运行时获取视频持续时间的主要内容,如果未能解决你的问题,请参考以下文章

Video.js - 加载元数据事件永远不会触发

删除重复的事件侦听器

无法添加键盘事件监听器动作脚本

将事件侦听器添加到我的页面会导致问题

NodeJS 警告:可能的事件发射器泄漏。添加了 11 个开放式侦听器

Safari 5.1 上的 VideoJS 进度事件始终为 0