"use strict"; const common_vendor = require("../../../common/vendor.js"); const videoData = [ { src: "https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/hellouniapp/hello-nvue-swiper-vertical-01.mp4" }, { src: "https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/hellouniapp/hello-nvue-swiper-vertical-02.mp4" }, { src: "https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/hellouniapp/hello-nvue-swiper-vertical-03.mp4" }, { src: "https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/hellouniapp/hello-nvue-swiper-vertical-01.mp4" }, { src: "https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/hellouniapp/hello-nvue-swiper-vertical-02.mp4" }, { src: "https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/hellouniapp/hello-nvue-swiper-vertical-03.mp4" } ]; const _sfc_main = { data() { return { circular: true, videoList: [ { id: "video0", src: "", img: "" }, { id: "video1", src: "", img: "" }, { id: "video2", src: "", img: "" } ], videoDataList: [] }; }, onLoad(e) { }, onReady() { this.init(); this.getData(); }, methods: { init() { this._videoIndex = 0; this._videoContextList = []; for (var i = 0; i < this.videoList.length; i++) { this._videoContextList.push(common_vendor.index.createVideoContext("video" + i, this)); } this._videoDataIndex = 0; }, getData(e) { this.videoDataList = videoData; setTimeout(() => { this.updateVideo(true); }, 200); }, onSwiperChange(e) { let currentIndex = e.detail.current; if (currentIndex === this._videoIndex) { return; } let isNext = false; if (currentIndex === 0 && this._videoIndex === this.videoList.length - 1) { isNext = true; } else if (currentIndex === this.videoList.length - 1 && this._videoIndex === 0) { isNext = false; } else if (currentIndex > this._videoIndex) { isNext = true; } if (isNext) { this._videoDataIndex++; } else { this._videoDataIndex--; } if (this._videoDataIndex < 0) { this._videoDataIndex = this.videoDataList.length - 1; } else if (this._videoDataIndex >= this.videoDataList.length) { this._videoDataIndex = 0; } this.circular = this._videoDataIndex != 0; if (this._videoIndex >= 0) { this._videoContextList[this._videoIndex].pause(); this._videoContextList[this._videoIndex].seek(0); } this._videoIndex = currentIndex; setTimeout(() => { this.updateVideo(isNext); }, 200); }, getNextIndex(isNext) { let index = this._videoIndex + (isNext ? 1 : -1); if (index < 0) { return this.videoList.length - 1; } else if (index >= this.videoList.length) { return 0; } return index; }, getNextDataIndex(isNext) { let index = this._videoDataIndex + (isNext ? 1 : -1); if (index < 0) { return this.videoDataList.length - 1; } else if (index >= this.videoDataList.length) { return 0; } return index; }, updateVideo(isNext) { this.$set(this.videoList[this._videoIndex], "src", this.videoDataList[this._videoDataIndex].src); this.$set(this.videoList[this.getNextIndex(isNext)], "src", this.videoDataList[this.getNextDataIndex(isNext)].src); setTimeout(() => { this._videoContextList[this._videoIndex].play(); }, 200); console.log("v:" + this._videoIndex + " d:" + this._videoDataIndex + "; next v:" + this.getNextIndex( isNext ) + " next d:" + this.getNextDataIndex(isNext)); } } }; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { return { a: common_vendor.f($data.videoList, (item, k0, i0) => { return { a: item.id, b: item.id, c: item.src, d: item.id }; }), b: $data.circular, c: common_vendor.o((...args) => $options.onSwiperChange && $options.onSwiperChange(...args)) }; } const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "E:/xianyu/app/greenPro/pages/template/swiper-vertical/swiper-vertical.nvue"]]); wx.createPage(MiniProgramPage);