uniapp计算视频学习进程,并且下次回来继续播放(不能快进)

这篇具有很好参考价值的文章主要介绍了uniapp计算视频学习进程,并且下次回来继续播放(不能快进)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

该功能分别有三个难点:

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:

<video id="myVideo" :title="data.course_title"  :initial-time="videoContext" style="width: 100%;" :src="data.video_url" controls @timeupdate="videoTimeUpdateEvent"></video>

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 

整体代码如下:

<video id="myVideo" :title="data.course_title"  :initial-time="videoContext" style="width: 100%;" :src="data.video_url" controls @timeupdate="videoTimeUpdateEvent"></video>


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 <= 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 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
				}
			},

到这里就结束了,最后希望能帮助到大家,谢谢支持!文章来源地址https://www.toymoban.com/news/detail-786112.html

到了这里,关于uniapp计算视频学习进程,并且下次回来继续播放(不能快进)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 快速播放完,视频,适用于 一些教育视频的听课,如财务继续教育、驾校考试等

    在浏览器的控制台录入如下代码 document.querySelector(‘video’).play(); document.querySelector(‘video’).playbackRate = 10.0; //修改此值设置当前的播放倍数。 这个可以十倍速度快速听完。 倍速最大值是有规定的, 或者说 function skip() { let video = document.getElementsByTagName(‘video’) //获取网页中

    2024年02月15日
    浏览(60)
  • uniapp使用uni.createInnerAudioContext()播放指定音频并且切换

    uniapp API 中 uni.createInnerAudioContext()是无法多音频播放的 如果我们想同时播放 加上ambient(不中止其他声音播放,不能后台播放,静音后无声音)这个属性,我做的这个是用uniapp开发的一个安卓端的壳包,正常h5用MP3,WMA或者MPEG等格式的音频都是可以的,但在安卓端手机测试需

    2024年02月11日
    浏览(55)
  • uniapp制作水印相机给图片添加水印并且保存图片至本地

    文件主要分为两大类: 1.代码包文件:代码包文件指的是在项目目录中添加的文件。 2.本地文件:通过调用接口本地产生,或通过网络下载下来,存储到本地的文件。 其中本地文件又分为三种: 1.本地临时文件:临时产生,随时会被回收的文件。运行时最多存储 4GB,结束运

    2024年02月11日
    浏览(52)
  • canvas绘制动态视频并且在视频上加上自定义logo

    实现的效果:可以在画布上播放动态视频,并且加上自定义的图片logo放在视频的右下角  

    2024年02月07日
    浏览(36)
  • uniapp实现支付宝小程序中嵌入H5并且实现相互通信

    场景:在小程序开发中(无论是支付宝、微信、Uniapp等)会遇到在小程序中使用或者跳转一些自己的公司开发过的,或三方地址,在小程序中的开发文档中大家可以看到,只是有一些基本的内部跳转方式,但通过仅有的跳转方式无法满足我们的跳转外部页面的需求,这个时候

    2024年01月19日
    浏览(40)
  • 继续探索Roop(单张图视频换脸)的各方面:比如喜闻乐见的“加速”

    前两天写了🔗《简单介绍Roop(类似SimSwap)单张图视频换脸的项目》 ,介绍了基本安装使用。 之后这个项目飞快的更新着,减少了很多问题更加实用了,所以准备多说几句。 官方:🔗地址。 之前只觉得它很方便用,选一张图,选一个视频,点击开始。 后来发现这个项目更

    2024年02月10日
    浏览(53)
  • 在uniapp小程序中获取周边WiFi列表,并且显示已连接WiFi

     详细代码如下:    使用 Array.prototype.sort() 方法对 this.wifiList 进行排序。排序的规则是,如果Wi-Fi的SSID与当前已连接的Wi-Fi的SSID相同,则将其排在前面;如果Wi-Fi的SSID与当前已连接的Wi-Fi的SSID不同,则按原始顺序排序。 Array.prototype.sort() 方法接受一个比较函数作为参数,该

    2024年02月09日
    浏览(45)
  • 计算机视觉+深度学习+机器学习+opencv+目标检测跟踪(代码+视频)

    计算机视觉、深度学习和机器学习是当今最热门的技术,它们被广泛应用于各种领域,如自动驾驶、医学图像分析、安防监控等。而目标检测跟踪技术则是计算机视觉中的一个重要分支,它可以帮助我们在图像或视频中自动识别和跟踪特定的目标。 下面我们来一一介绍这些技

    2024年02月01日
    浏览(107)
  • 基于Java+SpringBoot+Vue+Uniapp前后端分离考试学习一体机设计与实现(视频讲解,已发布上线)

    博主介绍: ✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌ 博主作品: 《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-

    2024年02月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包