index.wxml
<view class="video-wrap"> <swiper class="swiper" vertical='true' easing-function='default' bindchange='swiperchange'> <block wx:for="{{video_list}}" wx:for-index="idx" wx:key="idx"> <swiper-item> <view class="video-wrap"> <video wx:if="{{idx==hkindex||idx==hkindex-1||idx==hkindex+1}}" show-center-play-btn="{{false}}" id="myvideo{{idx}}" class="video" src="{{item.videourl}}" loop autoplay="{{idx == autoplay ? true : false}}" show-fullscreen-btn="{{false}}" show-play-btn="{{false}}" enable-play-gesture controls="{{false}}" bindpause="bindpause" bindplay="bindplay"> </video> </view> </swiper-item> </block> </swiper> </view>
index.js
// pages/video/index.js Page({ /** * 页面的初始数据 * */ data: { autoplay: 0, video_list: [], article_id: '', detail_id: '', extension_url: '', hkindex: 0, //滑块index }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { this.setData({ article_id: this.data.article_id = options.article_id, detail_id: this.data.detail_id = options.detail_id, }); wx.request({ url: '你的视频详情页接口', methods: 'GET', // 请求的方式 data: { article_id: this.data.article_id, detail_id: this.data.detail_id, extension_url: this.data.extension_url }, success: res => { this.setData({ video_list: this.data.video_list.concat(res.data.child_list) }); } }); }, //动态更新当前滑块下标 swiperchange(e) { this.setData({ hkindex: e.detail.current }) for (let index = 0; index < this.data.video_list.length; index++) { if (e.detail.current == index) { let videoContext = wx.createVideoContext("myvideo" + index + ""); videoContext.play(); } else { let videoContexta = wx.createVideoContext("myvideo" + index + "") videoContexta.pause(); // videoContexta.seek(0); } } }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { } })
index.wxss
page { width: 100%; height: 100%; } .video-wrap { width: 100%; height: 100%; position: relative; } .video-wrap video { width: 100%; height: 100%; position: absolute; top: 0px; left: 0; z-index: 1; } .swiper { width: 100%; height: 100%; }
来源:https://blog.csdn.net/weixin_45791806/article/details/126271114