重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇内容主要讲解“怎么实现小程序视频列表中视频的播放与停止功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么实现小程序视频列表中视频的播放与停止功能”吧!
成都创新互联成立十载来,这条路我们正越走越好,积累了技术与客户资源,形成了良好的口碑。为客户提供网站设计、成都网站设计、网站策划、网页设计、国际域名空间、网络营销、VI设计、网站改版、漏洞修补等服务。网站是否美观、功能强大、用户体验好、性价比高、打开快等等,这些对于网站建设都非常重要,成都创新互联通过对建站技术性的掌握、对创意设计的研究为客户提供一站式互联网解决方案,携手广大客户,共同发展进步。效果类似一条视频的小程序,就是视频列表,然后每个视频上覆盖一张视频的封面图,点击封面图的播放按钮视频播放,点击别的视频的时候,停止播放当前视频,播放点击的视频。差不多是这样:
一条视频
首先上代码:
wxml
{{item.title}} {{item.description}} {{!item.upStatus?'展开':'收起'}}
js
videoPlay(event){ var index = video.getDataSet(event, 'index'); if (!this.data.videoIndex) { // 没有播放时播放视频 this.setData({ videoIndex: index }) var videoContext = wx.createVideoContext('video' + index) videoContext.play() } else { var videoContextPrev = wx.createVideoContext('video' + this.data.videoIndex) videoContextPrev.stop() this.setData({ videoIndex: index }) var videoContextCurrent = wx.createVideoContext('video' + index) videoContextCurrent.play() } },
在页面布局上,我们让视频的封面图定位在视频的容器中,将播放按钮定位到视频容器中,且层级高。因为需求是点击封面图上的播放按钮视频开始播放,所以将show-center-play-btn设置为flase。在循环绑定数据时,将循环的index拼成视频的ID,将循环的index作为属性绑定到播放按钮。
在JS中,首先我们设置videoIndex来表示当前播放的视频在列表中的位置,它的初始值为null。
视频的播放与暂停
当点击事件发生时,首先获取点击的index,然后判断videoIndex的值:
如果videoIndex值为null,则表示这是第一次点击,将index绑定到videoIndex上,然后通过var videoContext = wx.createVideoContext('video' + index)来获取当前点击的视频,并使用videoContext.play()将视频进行播放。
如果videoIndex的值不为null,则表示这不是第一次点击,我们首先应该将正在播放的视频停止,然后在播放点击的视频。此时,videoIndex的值表示正在播放的视频在列表中的位置,我们通过var videoContextPrev = wx.createVideoContext('video' + this.data.videoIndex)来获取正在播放的视频上下文,然后通过videoContextPrev.stop()把它停止。最后我们将获取到的index值重新绑定到videoIndex上表示点击视频的序号,然后重复步骤一。
封面图处理
我们已经给封面图和封面图上的播放按钮进行处理了,用微信的wx:if或者hidden就可以了,当videoIndex等于index的时候,表示要播放这个视频,将视频显示并播放,封面图和播放按钮隐藏就可以了。
一点小坑
一开始考虑到性能,由于wx:if在页面加载的时候并不渲染数据,频繁点击的话频繁渲染数据,有点影响性能,就采用了hidden方法,使用hidden方法处理封面图和播放按钮一点问题也没有,处理视频的话有时候会出现视频不播放,并且显示中间播放按钮的情况,所以采用了wx:if,这样页面开始渲染的时候不渲染视频,点击之后渲染视频,并且设置视频自动播放,就可以了。
到此,相信大家对“怎么实现小程序视频列表中视频的播放与停止功能”有了更深的了解,不妨来实际操作一番吧!这里是创新互联建站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!