
微信官方给的提示
解决方法一
以上是从微信官方论坛中找到的答案,就是说如果想实现禁止拖动进度条,要么就是隐藏掉,要么就是自己自定义一个进度条。如果用show-progress=‘{{false}}’,这个属性隐藏掉了进度条,那video原本自带的底部控制栏中(播放/暂停 ,进度时间,进度条,总时长,全屏/退出全屏),这些按钮中,就只剩下全屏/退出全屏了。开始,我决定自定义进度条,但是我发现video里嵌套的组件,虽说官网给出的是可以使用view,但是只有界面效果,却触发不了view对应的方法,也就是说,我用slider组件自定义了一个进度条,并且禁用,然而不管用。注意:就是如果你想全部隐藏掉自带的底部控制栏,就要在video里设置属性:controls='{{false}}'。但设置了这个属性,你想设置视频封面的图片的属性就无效了。于是乎,几经波折,来回调试,最终还是决定用video自带的控制栏,通过在进度条位置,设置一个遮罩层,再设置一下透明度,这样,光标点不到进度条,就拖动不了了。当然,这个遮罩层也是要用<cover-view>在设置遮罩层时,还遇到了问题,就是position: relative; opacity:0;无效!!!改成这样::position: absolute;opacity:0;模拟器,安卓手机上都没问题,iOS真机上无效!!!但是我发现,将透明度改大一点,大于0,iOS上就可以了。所以,我用wx.getSystemInfo,来判断设备,如果是iOS,那就设置透明度为0.1,如果是安卓,就为0.其实到这里,问题基本解决了,但是还有一点点瑕疵,就是因为保留了本身的控制栏,那全屏/退出全屏的按钮功能要保留,所以遮罩层不能罩到要用的按钮,不然就都点击不了,所以在使用的按钮上我用view,设置了一个跟遮罩层一样颜色一样透明度的还补全,这样从视觉效果上才算是过关。该代码搬砖简书 我不推荐这种哦
方法二
<video id="myVideo" bindtimeupdate="timeUpdate" bindpause="pause" bindwaiting="waiting" binderror="error" src='视频链接地址' initial-time="{{initial_time}}" poster="视频封面图片链接地址" page-gesture controls ></video>//百度==================解决 问群===================闲聊//获取应用实例var app = getApp();const bgMusic = wx.getBackgroundAudioManager()Page({data: {video_real_time:0, //实时播放进度initial_time:'', //视频跳转进度 秒},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {var that = this//此处写在接口的位置 100从接口处获取that.setData({initial_time:'100' //视频进度})},//监听视频播放进度timeUpdate: function (e) {var aa = 1; // 是否开启可以视频快进 1 禁止开启//跳转到指定播放位置 initial-time 时间为秒let that = this;//播放的总时长var duration = e.detail.duration//实时播放进度 秒数var currentTime = parseInt(e.detail.currentTime)//当前视频进度// console.log("视频播放到第" + currentTime + "秒")//查看正在播放时间,以秒为单位if (that.data.video_real_time==0){var jump_time = parseInt(that.data.initial_time) + parseInt(that.data.video_real_time)}else{var jump_time = parseInt(that.data.video_real_time)}if(aa==1){if (currentTime > jump_time && currentTime - jump_time>3){let videoContext = wx.createVideoContext('myVideo')videoContext.seek(that.data.video_real_time)wx.showToast({title: '未完整看完该视频,不能快进',icon: 'none',duration: 2000,})}}that.setData({video_real_time: currentTime, //实时播放进度})},pause: function (e) {console.log('视频暂停播放')console.log('暂停时播放时间====>' + this.data.video_real_time)},waiting: function (e) {console.log('视频缓冲')console.log(e)},error: function (e) {console.log('视频播放出错时')console.log(e)},})//这种方法比较推荐大家使用 搬砖csdn
