微信小程序项目中遇到了免费试看30秒的需求,看了文档,发现一个我使用开发者工具以来最鸡肋的属性,duration(指定视频时长),相信有不少朋友当初也以为这是限时播放时长的,万万没想到,只是看起来只能播放30秒,实际时长还是以视频时长为准;然后我就设置了bindtimeupdate(播放进度改变时触发),设置30秒的时候触发if(e.detail.currentTime>time){ pause()暂停当前视频,且弹窗提示 },time为当前限制播放时间;这里有个小bug,就是触发了bindtimeupdate函数视频也会播放一段时间(取决于函数执行耗费的时间),就会造成调用两次bindtimeupdate,所以我就在第一次触发的时候将time改变为time+1,函数只要不太复杂,执行时间应该不会超过一秒,弹窗提示是否支付之类的;要在之前就设置一个参数控制controls(播放按钮之类的控件)的false 或者 true;
这里有三种情况 一是直接按取消按钮,当客户按下取消按钮,将controls隐藏,且给整个video一个点击事件,弹窗提示支付;二是点击了支付,直接一气呵成,不用改变什么;三是点击支付之后没有支付,将controls隐藏,且给整个video一个点击事件,弹窗提示支付;差不多这样,可能后续还有改进
第一次写文章,希望对大家有所帮助