需要给视频播放做进度条打点的功能,如下图:

视频播放使用video.js控件,整个项目环境使用angularjs搭建。
打点功能使用是为video.js扩展了一个插件,本身显示没有问题。
现在的问题是在页面打开或刷新时,由于视频加载速度比较慢,两个点的显示很容易出现在视频进度条初始化之前,会产生这样的显示效果:
controller代码如下。
var video = videojs('player', {
controlBar: {
volumeMenuButton: {inline: false}
}
});
video.on('firstplay', function(){
video.videoDot({
init: true,
angular: true,
dotArray: [{
time: 300,
content: '巴拉巴拉小魔仙巴拉巴'
}, {
time: 1800,
content: '小魔仙蜜汁舞步!'
}]
});
});
监听的是video的firstplay事件,显然不合理。但是在videojs官网和源码中并没有找到合适的事件。
请问该如何修改这个错误?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
查了下资料,它还提供了这两个事件,把 firstplay 换成下面的试试看效果
附下官网api文档,方便你以后查找:
http://docs.videojs.com/docs/...
最新的文档里,事件只有loadeddata, loadedalldata没有了。
补充一下,只监听loadeddata可以解决网速比较慢的时候出现的问题,然而网速飞快的时候仍然不可行。
最后暂时将两个事件同时监听作为解决方案。
另外附上插件代码
判断是否已经渲染了打点p,存在的话就更新一下,不存在创建,保证同时只存在一个打点容器。