小编给大家分享一下如何实现小程序视频列表中视频的播放与停止功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、成都网站制作、叙州网络推广、重庆小程序开发公司、叙州网络营销、叙州企业策划、叙州品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;创新互联为所有大学生创业者提供叙州建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com效果类似一条视频的小程序,就是视频列表,然后每个视频上覆盖一张视频的封面图,点击封面图的播放按钮视频播放,点击别的视频的时候,停止播放当前视频,播放点击的视频。差不多是这样:
一条视频
首先上代码:
wxml
<block wx:for="{{videoList}}"> <view class='video-item'> <view class='wrapper'> <video class='video-video' wx:if='{{index==videoIndex}}' id='video{{index}}' autoplay='{{true}}' show-center-play-btn="{{false}}" src='{{item.resource_add}}'></video> <image class='video-video2' wx:if='{{index!=videoIndex}}' mode='aspectFill' src='{{item.coverimg}}'></image> <image class='videoPlay' wx:if='{{index!=videoIndex}}' data-index='{{index}}' bindtap='videoPlay' src='/images/icon/play.png'></image> </view> <view class='video-name'>{{item.title}}</view> <view class='video-desc' >{{item.description}}</view> <view class='video-bottom'> <view class='video-btn' data-index="{{index}}" bindtap='upDown'> <image hidden='{{item.upStatus}}' src='/images/icon/slide.png'></image> <image hidden='{{!item.upStatus}}' src='/images/icon/up.png'></image> <text>{{!item.upStatus?'展开':'收起'}}</text> </view> </view> </view> </block>
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,这样页面开始渲染的时候不渲染视频,点击之后渲染视频,并且设置视频自动播放,就可以啦~~~
以上是“如何实现小程序视频列表中视频的播放与停止功能”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联成都网站设计公司行业资讯频道!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网页标题:如何实现小程序视频列表中视频的播放与停止功能-创新互联
文章源于:https://www.cdcxhl.com/article14/deigge.html
成都网站建设公司_创新互联,为您提供定制开发、云服务器、网站建设、Google、标签优化、网站导航
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联