前言:

该功能分别有三个难点:

1.计算百分比,计算上次播放秒数

2.如何使视频无法快进

3.如何从上次播放描述开始

首先现在这里熟悉一下如何计算:

1.计算视频播放的百分比

比如该视频的总时长为120秒,然后现在播放的时长为12秒,计算当前视频学习时长的百分比

let a = 120//总时长let b = 12//现在播放的时长let c = b / a * 100//总进度10%

2.计算上次播放视频的秒数

比如该视频的总时长为120秒,当前视频学习时长为10%,计算上次播放视频的秒数

let a = 120//总时长let c = 10//百分比let b = a * (c / 100)//上次播放时长

到这里第一个难题已经解决

然后想要获取上次播放视频的秒数最佳方法就是请求接口了

请求接口这一步就省去了,不懂得在评论区留言

其次、如何让视频无法快进

上代码:

html:

js:

currentTime: '', //现在的时长durationTime: '', //总时长videoContext: 0,watch: 0, //用来判断是否快进box: null,//绑定上次文progress: ''//百分比
onReady() {this.box = uni.createVideoContext('myVideo')},videoTimeUpdateEvent(e) {this.currentTime = Number(e.detail.currentTime);this.durationTime = Number(e.detail.duration);if (this.currentTime - this.watch > 10) {uni.showToast({title: '不能快进',icon: 'none'})this.box.seek(this.watch)this.videoContext = this.watch} else {this.watch = this.currentTime}},

到这里第二个问题就解决了

最后,使视频从上次播放秒数开始

if (e.detail.currentTime <= 1) {this.box.seek(e.detail.duration * (this.progress / 100))this.videoContext = e.detail.duration * (this.progress / 100)this.watch = e.detail.duration * (this.progress / 100)} else 

整体代码如下:

currentTime: '', //现在的时长durationTime: '', //总时长videoContext: 0,watch: 0, //用来判断是否快进box: null,//绑定上次文progress: ''//百分比onReady() {this.box = uni.createVideoContext('myVideo')},videoTimeUpdateEvent(e) {this.currentTime = Number(e.detail.currentTime);this.durationTime = Number(e.detail.duration);if (e.detail.currentTime  10) {uni.showToast({title: '不能快进',icon: 'none'})this.box.seek(this.watch)this.videoContext = this.watch} else {this.watch = this.currentTime}},

到这里就结束了,最后希望能帮助到大家,谢谢支持!