关于videojs的播放进度事件异常问题
问题:在播放器创建成功成后,通过监听播放进度事件来实现自制进度条功能,发现播放进度并未完成,但却触发了播放结束的事件(我如果直接把进度条往没播放的拖动,又能播放,vlc播放正常),请问有人解决过类似的问题吗?
以下是代码和图片参考
const self = this
const techOrder = this.flash ? ['html5', "flash"] : ['html5']
const _source = { src: source.src, type: source.type }
this.myPlayer = videojs(this.$refs.video, {
autoplay: true,
poster: this.poster,
techOrder,
muted: true,
// preload: 'none',
language: "zh-CN",
// notSupportedMessage: '播放失败',
inactivityTimeout: 0,
...this.option,
sources: [_source],
controls: false
}, function onPlayerReady() {
self.loading = false
videojs.log('player is ready!')
this.on("playing", function() { // 监听播放
videojs.log("开始播放")
self.$emit('playing')
self.myPlayer.muted(false)
self.$set(self.videoControlForm, 'play', true)
})
this.on("pause", function() {
self.$set(self.videoControlForm, 'play', false)
})
this.on("error", function(error) { // 监听错误
videojs.log('监听到异常,错误信息:')
videojs.log(error)
self.$$error('播放失败')
self.$emit('error')
})
this.on('ended', function() {
videojs.log('播放结束了!')
self.$emit('ended')
})
if (!self.live) {
// 视频播放时间变化事件
this.on('timeupdate', function(e) {
console.log('timeupdate', this.currentTime(), this.remainingTime(), this.duration())
let currentTime = this.currentTime() || 0
let remainingTime = this.remainingTime() > 0 ? this.remainingTime() : 0
self.$set(self.videoControlForm, 'totalTime', currentTime + remainingTime)
self.$set(self.videoControlForm, 'currentTime', currentTime)
self.$set(self.videoControlForm, 'remainingTime', remainingTime)
})
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
请问楼主找到解决方法了了吗