uniapp实现禁止video拖拽快进

Posted 小跳不会Coding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uniapp实现禁止video拖拽快进相关的知识,希望对你有一定的参考价值。

在项目开发过程中,难免会用到video视频标签。根据客户要求,视频只能正常观看完,不能手动快进,以下是实现的方法:

<!--1.video标签-->
<video id="myVideo" @timeupdate="videoFun" :src="videourl" initial-time="initial_time" >


<script>
	export default 
		data() 
		    //2.data数据部分
			return 
				videourl: "https://vd3.bdstatic.com/mda-me38qw5ayq6m5x6k/sc/cae_h264/1620080580731464743/mda-me38qw5ayq6m5x6k.mp4?v_from_s=hkapp-haokan-nanjing&auth_key=1654941744-0-0-e46a5e5c83b069fcaf54124cd256af20&bcevod_channel=searchbox_feed&pd=1&cd=0&pt=3&logid=1944747745&vid=1074518001243819841&abtest=102599_2-102777_6-102784_1-17451_1-3000225_3-3000232_1&klogid=1944747745",
				video_real_time: 0, //实时播放进度
				nitial_time: '', //视频跳转进度 秒
			
		,
		
		onLoad(option) 
			//3.onload部分
			this.initial_time = '0' //视频进度
		,
		methods: 
			//4.方法部分
			videoFun(e)
				var isReady = 1; // 是否开启可以视频快进 1 禁止开启
				//跳转到指定播放位置 initial-time 时间为秒
				let that = this;
				//播放的总时长
				var duration = e.detail.duration
				//实时播放进度 秒数
				var currentTime = parseInt(e.detail.currentTime)
				//当前视频进度
				// console.log("视频播放到第" + currentTime + "秒")//查看正在播放时间,以秒为单位
				if (that.video_real_time == 0) 
					var jump_time = parseInt(that.initial_time) + parseInt(that.video_real_time)
				 else 
					var jump_time = parseInt(that.video_real_time)
				
				if (isReady == 1) 
					if (currentTime > jump_time && currentTime - jump_time > 3) 
						let videoContext = wx.createVideoContext('myVideo')
						videoContext.seek(that.video_real_time)
						wx.showToast(
							title: '未完整看完该视频,不能快进',
							icon: 'none',
							duration: 2000,
						)
					
				
				that.video_real_time = currentTime //实时播放进度
			


		
	
</script>


Vue 实现 H5video 视频标签 禁止快进 最优

 可以拖动滚动条 但是还是松开鼠标还是停留在当前位置,如果后退的话还是可以快进到最快的位置,这点还是比较优化较好的

<template>
 <video
          ref="video"
          @timeupdate="timeupdate"
        >
</template>

<script>
export default {
  data() {
    return {
      currTime: null,
      maxTime:0,
    };
  },
  methods: {
    timeupdate(e) {
      console.log(e.srcElement.currentTime - this.currTime);
      if (e.srcElement.currentTime - this.currTime > 1) {
        e.srcElement.currentTime = this.currTime>this.maxTime?this.currTime:this.maxTime;
        console.log("快进了");
      }
      this.currTime = e.srcElement.currentTime;
      this.maxTime = this.currTime>this.maxTime?this.currTime:this.maxTime;
      console.log("视频记录", e.srcElement.currentTime);
      console.log("本地记录", this.currTime);
    },
    toggleCom(num) {
      this.comNum = num;
    },
  },
};
</script>

以上是关于uniapp实现禁止video拖拽快进的主要内容,如果未能解决你的问题,请参考以下文章

Vue 实现 H5video 视频标签 禁止快进 最优

Video/Audio禁止快进(退)

vue-video-player怎么禁止快进 可以后退?

Html5新增标签video视频,实现音视频的播放暂停快进慢进倍速等操作

uniapp微信小程序video视频监听播放时间

用java读取本地磁盘视频资源,OutputStream输出的视频文件在html的video标签播放时不能点快进