针对你提到的Video.js播放视频时进度条下方左侧当前播放时长一直为0的问题,以及视频中间页预加载圈一直转动的问题,这里有几个可能的解决方案和检查点:
1. 检查视频文件
首先,确保视频文件本身没有损坏,且格式被Video.js支持。你可以尝试播放一个不同的视频文件,看问题是否依旧存在。
2. 检查Video.js的初始化
确认Video.js是否已正确初始化。在Vue3中,你可能需要在组件的mounted
钩子中初始化Video.js,并确保DOM元素已经挂载。
mounted() {
this.$nextTick(() => {
var player = videojs(this.$refs.videoPlayer, {
// 配置项
}, function onPlayerReady() {
console.log('播放器已就绪');
});
});
}
3. 检查currentTime的获取时机
确保你在正确的时间点获取currentTime
。如果视频尚未开始播放或由于某些原因(如网络延迟)尚未加载足够的视频数据,currentTime
可能会显示为0。你可以通过监听loadedmetadata
、loadeddata
、canplay
等事件来确保视频数据已加载:
player.on('loadedmetadata', function() {
console.log('视频元数据已加载,当前时间:', player.currentTime());
});
player.on('loadeddata', function() {
console.log('视频数据已加载,当前时间:', player.currentTime());
});
player.on('canplay', function() {
console.log('视频已准备好播放,当前时间:', player.currentTime());
});
4. 检查视频源
确保视频源URL正确无误,并且服务器支持CORS(跨源资源共享),如果视频托管在不同的域上。
5. 检查浏览器或设备兼容性
虽然你说在iOS手机和谷歌浏览器上正常,但考虑到是在企业微信的应用中,可能需要检查企业微信内置的浏览器对Video.js的支持情况。尝试在不同的浏览器或设备上进行测试。
6. 预加载圈的问题
关于预加载圈一直转动的问题,这通常意味着视频数据仍在加载中。你可以尝试设置Video.js的preload
属性来控制预加载行为,例如:
var player = videojs(this.$refs.videoPlayer, {
preload: 'auto' // 或者 'metadata', 'none'
});
但注意,preload
属性的设置可能受浏览器策略限制,并不总是能按预期工作。
7. 检查控制台错误
查看浏览器的控制台是否有任何错误或警告信息,这些信息可能有助于诊断问题。
如果以上方法都不能解决问题,你可能需要更详细地检查你的代码和配置,或者考虑在Video.js的GitHub仓库、Stack Overflow等平台寻求更专业的帮助。
不太清楚你描述的 在我自己ios手机和谷歌浏览器均正常 是什么意思,猜测可能是你这边开发和模拟都是正常的,但是用户那边不正常?或者说你这边使用企业微信也是不正常?
可以看一下这个Issue,里面是说 Android Chrome 的问题?