From 63116e19824ceabc68a72f10b134d815f462e711 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期四, 23 十月 2025 20:21:49 +0800
Subject: [PATCH] 抽奖页面调整
---
pages/video/video-play.vue | 419 ++++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 313 insertions(+), 106 deletions(-)
diff --git a/pages/video/video-play.vue b/pages/video/video-play.vue
index 4cf61c2..7a0f884 100644
--- a/pages/video/video-play.vue
+++ b/pages/video/video-play.vue
@@ -1,32 +1,43 @@
<template>
<view class="video-container">
+ <!-- 瑙嗛鍔犺浇 -->
+ <zero-loading v-show="videoLoading" type="circle" color="#0ebd57" text=""></zero-loading>
<!-- 瑙嗛鍒楄〃 -->
<swiper
class="video-swiper"
vertical
- circular
:current="currentIndex"
@change="onSwiperChange"
+ :duration="250"
+ easing-function="linear"
>
- <swiper-item v-for="(item, index) in videoList" :key="item.id">
- <view style="width: 100%;height: 100%;" v-if="item.videoContentType === 'video'">
+ <swiper-item
+ v-for="(item, index) in videoList"
+ :key="item.id"
+ @touchstart="handleSwiperStart"
+ @touchmove="handleSwiperMove"
+ @touchend="handleSwiperEnd(item)"
+ >
+ <view :style="{width: '100%', height: windowHeight - marginBottom + 'px'}" v-if="item.videoContentType === 'video'">
<!-- 鎾斁鎸夐挳锛堜粎褰撹棰戞殏鍋滄椂鏄剧ず锛� -->
<view
class="play-icon"
@click="togglePlay(index)"
- v-if="!currentVideoIsPlaying"
+ v-show="!currentVideoIsPlaying"
>
- <image src="/static/video/play.png" style="width: 45px;height: 45px" mode="aspectFit"></image>
+ <image src="/pages/subComponents/static/video/play.png" style="width: 45px;height: 45px" mode="aspectFit"></image>
</view>
<video
+ v-if="index >= currentIndex - videoLiveOffset && index <= currentIndex + videoLiveOffset"
:id="'video'+index"
:ref="'video'+index"
:src="item.videoUrl"
- :autoplay="currentIndex === index"
+ :autoplay="index === currentIndex"
:controls="false"
:loop="true"
- :object-fit="item.objectFit"
+ :object-fit="item.videoFit"
:enable-progress-gesture="false"
+ :show-center-play-btn="false"
class="video-item"
@play="onPlay(item.id, index)"
@pause="onPause(index)"
@@ -34,13 +45,13 @@
@click="togglePlay(index)"
@timeupdate="onTimeUpdate($event)"
@loadedmetadata="onLoadedMetadata($event)"
-
+ @waiting="videoWaiting(index)"
></video>
<!-- 鑷畾涔夋帶鍒舵潯 -->
<view
- @touchstart="handleTouchStart"
- @touchmove="handleTouchMove"
- @touchend="handleTouchEnd"
+ @touchstart.stop="handleTouchStart"
+ @touchmove.stop="handleTouchMove"
+ @touchend.stop="handleTouchEnd"
class="container">
<!-- 杩涘害鏉� - 鏁翠釜鍖哄煙鍙嫋鍔� -->
<view class="process-warp" :style="{ opacity: showProcess ? 1 : 0 }">
@@ -116,31 +127,35 @@
</view>
</view>
- <!-- 鍙充晶浜掑姩鎸夐挳 -->
- <view class="action-buttons">
- <view class="avatar-container">
- <image class="avatar" @click="jumpToHomePage(item.authorId)" :src="item.authorAvatar" mode="aspectFill"></image>
- <!-- 鍏虫敞鍥炬爣 - 浣跨敤缁濆瀹氫綅 -->
- <view v-if="!item.subscribeThisAuthor" class="follow-icon" @click="subscribeAuth(index, item.authorId)">
- <text class="iconfont"></text>
- </view>
- </view>
- <view class="action-item" @click="toggleCollect(item, index)">
- <text class="iconfont" v-if="item.collected"></text>
- <text class="iconfont" v-else></text>
- <text style="font-size: 10px;font-weight: lighter;">{{item.collectNum}}</text>
- </view>
- <view class="action-item" @click="showComments(item)">
- <text class="iconfont"></text>
- <text style="font-size: 10px;font-weight: lighter;">{{item.commentNum}}</text>
- </view>
- <view class="action-item">
- <button open-type="share" class="custom-share-btn" :data-obj="item">
- <text class="iconfont"></text>
- </button>
-
- </view>
- </view>
+ <!-- 鍙充晶浜掑姩鎸夐挳 -->
+ <view class="action-buttons">
+ <view class="avatar-container">
+ <image class="avatar" @click="jumpToHomePage(item.authorId)" @touchend.stop :src="item.authorAvatar" mode="aspectFill"></image>
+ <!-- 鍏虫敞鍥炬爣 - 浣跨敤缁濆瀹氫綅 -->
+ <view v-if="!item.subscribeThisAuthor" class="follow-icon" @touchend.stop @click="subscribeAuth(index, item.authorId)">
+ <text class="iconfont"></text>
+ </view>
+ </view>
+ <view class="action-item" @click="toggleThumbsUp(item, index)">
+ <text class="iconfont" v-if="item.thumbsUp"></text>
+ <text class="iconfont" v-else></text>
+ <text style="font-size: 10px;font-weight: lighter;">{{item.thumbsUpNum}}</text>
+ </view>
+ <view class="action-item" @click="showComments(item)">
+ <text class="iconfont"></text>
+ <text style="font-size: 10px;font-weight: lighter;">{{item.commentNum}}</text>
+ </view>
+ <view class="action-item" @click="toggleCollect(item, index)">
+ <text class="iconfont" v-if="item.collected"></text>
+ <text class="iconfont" v-else></text>
+ <text style="font-size: 10px;font-weight: lighter;">{{item.collectNum}}</text>
+ </view>
+ <view class="action-item">
+ <button open-type="share" class="custom-share-btn" :data-obj="item">
+ <text class="iconfont"></text>
+ </button>
+ </view>
+ </view>
</swiper-item>
</swiper>
@@ -228,7 +243,17 @@
</template>
<script>
-import { getRecommendVideos, savePlayRecord, subscribe, getVideoComments, addVideoComment, thubmsUpComment, cancelThubmsUpComment } from "@/api/video.js";
+import {
+ getRecommendVideos,
+ savePlayRecord,
+ subscribe,
+ getVideoComments,
+ addVideoComment,
+ thubmsUpComment,
+ cancelThubmsUpComment,
+ changeThumbsUp,
+ getGoodsSimilarlyVideos
+} from "@/api/video.js";
import { changeCollect } from "@/api/collect.js";
import { saveShare } from "@/api/share.js";
import storage from "@/utils/storage.js";
@@ -291,24 +316,42 @@
startPlayTime: 0 // 杩欎釜瑙嗛浠庝粈涔堟椂鍊欏紑濮嬫挱鏀剧殑
},
currentVideoIsPlaying: true, // 褰撳墠瑙嗛鏄惁姝e湪鎾斁
- isFullScreen: false,
- windowHeight: 0,
currentIndex: 0, // 褰撳墠鎾斁鐨勮棰戠储寮�
- videoList: [
-
- ], // 瑙嗛鍒楄〃鏁版嵁
- videoContexts: [], // 瑙嗛涓婁笅鏂囧璞¢泦鍚�
+ videoLoading: false, // 瑙嗛缂撳啿涓�
+ videoList: [], // 瑙嗛鍒楄〃鏁版嵁
+ videoBufferOffset: 0.1 ,// 瑙嗛棰勫姞杞藉弬鏁�
+ videoLiveOffset: 2, // 淇濈暀褰撳墠瑙嗛鍓嶅悗鍚勫灏戜釜瑙嗛涓婁笅鏂�
+ touchXY: { // 鐩戝惉宸︽粦鍙虫粦
+ startX: 0,
+ endX: 0,
+ startY: 0,
+ endY: 0
+ },
loading: false, // 鏄惁姝e湪鍔犺浇
videoQuery: {
pageNumber: 1,
- pageSize: 6,
+ pageSize: 10,
authorId: '',
- videoFrom: ''
- }
+ videoFrom: '',
+ keyword: ''
+ },
+ goodsSimilarlyQuery: { // 鐩镐技瑙嗛鏌ヨ
+ pageNumber: 1,
+ pageSize: 10,
+ videoFrom: 'goodsSimilarly',
+ goodsIds: [],
+ currentVideoId: ''
+ },
+ similarlyVideoList: [], // 鐩镐技瑙嗛
+ similarlyNomore: false, // 鏄惁杩樻湁鏇村鐩镐技瑙嗛
+ similaryVideoIndex: 0, // 鐩镐技瑙嗛鐨勬挱鏀句綅缃�
+ similarlyLoading: false, // 鐩镐技瑙嗛鍔犺浇
+ marginBottom: 0, // 搴曢儴瀹夊叏鍖哄煙
+ windowHeight: 0 // 鍙娇鐢ㄥ睆骞曢珮搴�
}
},
onShow() {
- this.loadVideos()
+ // this.loadVideos()
// 濡傛灉瑙嗛鎸変笅鏆傚仠鍚庡垏鎹㈤〉闈㈠啀鍥炲埌椤甸潰鏃讹紝鍙畻鏆傚仠鏃堕棿锛堝洜涓烘殏鍋滄椂闂村拰绂诲紑椤甸潰鏃堕棿鏄噸澶嶇殑锛屽彧绠椾竴涓級
if(this.startHidenTime !== 0 && this.currentVideoIsPlaying) {
const duration = Date.now() - this.startHidenTime
@@ -320,25 +363,44 @@
},
onUnload() {
uni.removeStorageSync("playInfo");
+ uni.removeStorageSync("searchPlayInfo");
+ },
+ onReady() {
+
},
onLoad(option) {
- const playInfo = uni.getStorageSync("playInfo", playInfo);
+ this.marginBottom = uni.getSystemInfoSync().safeAreaInsets.bottom
+ this.windowHeight = uni.getSystemInfoSync().windowHeight
+ const playInfo = uni.getStorageSync("playInfo");
+ const searchPlayInfo = uni.getStorageSync("searchPlayInfo");
if(playInfo) {
+ this.currentIndex = playInfo.playIndex;
this.videoList = playInfo.videoList;
- console.log("鎷垮埌鏁版嵁浜�",playInfo);
this.videoQuery.pageNumber = playInfo.pageNumber;
this.videoNoMore = playInfo.nomore;
this.videoQuery.authorId = option.authorId;
this.videoQuery.videoFrom = option.videoFrom;
- this.currentIndex = playInfo.playIndex;
+ this.currentVideoIsPlaying = true;
+ this.$nextTick(() => {
+ const videoContext = uni.createVideoContext(`video${this.currentIndex}`, this);
+ videoContext.play()
+ })
+ } else if (searchPlayInfo) { // 鎼滅储椤佃烦杞繃鏉ョ殑鏁版嵁鐣ユ湁涓嶅悓
+ this.currentIndex = searchPlayInfo.playIndex;
+ this.videoList = searchPlayInfo.videoList;
+ this.videoQuery.pageNumber = searchPlayInfo.pageNumber;
+ this.videoNoMore = searchPlayInfo.nomore;
+ this.videoQuery.keyword = searchPlayInfo.keyword;
+ this.videoQuery.videoFrom = option.videoFrom;
+ this.currentVideoIsPlaying = true;
+ this.$nextTick(() => {
+ const videoContext = uni.createVideoContext(`video${this.currentIndex}`, this);
+ videoContext.play()
+ })
} else {
this.videoQuery.videoFrom = 'recommend';
this.loadVideos();
}
- },
- onReady() {
- // 鍒濆鍖栬棰戜笂涓嬫枃
- this.initVideoContexts();
},
onShareAppMessage(e) {
const userInfo = storage.getUserInfo();
@@ -361,6 +423,35 @@
}
},
methods: {
+ // 鏌ヨ褰撳墠瑙嗛鐨勫叧鑱旇棰戯紙鎸備簡鍚屼竴鍟嗗搧鐨勶級
+ async getGoodsSimilarly() {
+ if (this.similarlyLoading || this.similarlyNomore) return Promise.resolve();;
+ const video = this.videoList[this.currentIndex];
+ if (video.goodsList && video.goodsList.length > 0) {
+ this.goodsSimilarlyQuery.goodsIds = video.goodsList.map(goods => goods.goodsId);
+ this.goodsSimilarlyQuery.currentVideoId = video.id;
+ if (this.similarlyVideoList.length < 1) {
+ this.similarlyVideoList.push(video); // 纭繚鍘熻棰戞槸妯悜瑙嗛鐨勭涓�涓厓绱�
+ }
+ this.similarlyLoading = true;
+ return getGoodsSimilarlyVideos(this.goodsSimilarlyQuery).then(res => {
+
+ this.similarlyVideoList = [
+ ...this.similarlyVideoList,
+ ...res.data.data.filter(
+ (newItem) => !this.similarlyVideoList.some((oldItem) => oldItem.id === newItem.id)
+ ),
+ ];
+
+ this.similarlyLoading = false;
+ if(res.data.data.length < this.goodsSimilarlyQuery.pageSize) {
+ this.similarlyNomore = true;
+ return;
+ }
+ this.goodsSimilarlyQuery.pageNumber++;
+ })
+ }
+ },
// 鐐瑰嚮鍟嗗搧璺宠浆
jumpToPay(videoId) {
uni.navigateTo({
@@ -623,13 +714,6 @@
}
})
},
- // 鍒濆鍖栬棰戜笂涓嬫枃
- initVideoContexts() {
- this.videoContexts = this.videoList.map((_, index) => {
- let videoContent = uni.createVideoContext(`video${index}`, this);
- return videoContent;
- });
- },
// 鍔犺浇瑙嗛鏁版嵁
async loadVideos() {
@@ -637,21 +721,25 @@
this.loading = true;
getRecommendVideos(this.videoQuery).then(res => {
+ // 鏂板涓�涓瓧娈电敤浜庡惊鐜椂鐨刱ey
+ const data = res.data.data.map(item => {
+ return {
+ ...item,
+ updateKey: item.id
+ }
+ })
if (this.videoQuery.pageNumber === 1) {
- this.videoList = res.data.data;
+ this.videoList = data;
} else {
this.videoList = [
...this.videoList,
- ...res.data.data.filter(
+ ...data.filter(
(newItem) => !this.videoList.some((oldItem) => oldItem.id === newItem.id)
),
];
}
- this.$nextTick(() => {
- this.initVideoContexts();
- });
this.loading = false;
- if(res.data.data.length < this.videoQuery.pageSize) {
+ if(data.length < this.videoQuery.pageSize) {
this.videoNoMore = true;
return;
}
@@ -661,29 +749,118 @@
// 婊戝姩鍒囨崲瑙嗛
onSwiperChange(e) {
- // 濡傛灉瑙嗛澶勪簬鏆傚仠鐘舵�佸線涓嬪埛瑙嗛锛岄偅涔堥渶瑕佸啀璁$畻涓�娆℃殏鍋滄椂闂�
- if(!this.currentVideoIsPlaying) {
- if(this.startPauseTime !== 0) {
- const duration = Date.now() - this.startPauseTime
- this.totalPauseTime += duration
- }
+ this.videoLoading = false
+ // 濡傛灉瑙嗛澶勪簬鏆傚仠鐘舵�佸線涓嬪埛瑙嗛锛岄偅涔堥渶瑕佸啀璁$畻涓�娆℃殏鍋滄椂闂�
+ if(!this.currentVideoIsPlaying) {
+ if(this.startPauseTime !== 0) {
+ const duration = Date.now() - this.startPauseTime
+ this.totalPauseTime += duration
+ }
+ }
+ // 淇濆瓨涓婁竴涓棰戠殑鎾斁璁板綍
+ this.savePlayRecord()
+ const oldIndex = this.currentIndex;
+ this.currentIndex = e.detail.current;
+ const videoContext = uni.createVideoContext(`video${oldIndex}`, this);
+ // 鏆傚仠涓婁竴涓棰�
+ videoContext.pause();
+ this.startPauseTime = 0;
+
+ // 璁剧疆褰撳墠鎾斁瑙嗛鐨勬�绘椂闀�
+ this.duration = this.videoList[this.currentIndex].videoDuration;
+ this.formartDuration = this.sliderFormatTime(this.duration);
+
+ // 鎾斁褰撳墠瑙嗛
+ const videoContext1 = uni.createVideoContext(`video${this.currentIndex}`, this);
+ videoContext1.play()
+
+ // 涓嬫粦鏃讹紝闇�瑕佸皢涓婁竴涓棰戦噸缃负鍘熷瑙嗛(濡傛灉妯悜婊戝姩浜嗙浉鍏宠棰�)
+ if (this.similaryVideoIndex !== 0) {
+ this.videoList[oldIndex] = this.similarlyVideoList[0]
}
- // 淇濆瓨涓婁竴涓棰戠殑鎾斁璁板綍
- this.savePlayRecord()
- const oldIndex = this.currentIndex;
- this.currentIndex = e.detail.current;
-
- // 鏆傚仠涓婁竴涓棰�
- if (this.videoContexts[oldIndex]) {
- this.videoContexts[oldIndex].pause();
+ this.similarlyVideoList = [];
+ this.similaryVideoIndex = 0;
+ this.similarlyNomore = false;
+ this.similarlyLoading = false;
+ this.goodsSimilarlyQuery = {
+ pageNumber: 1,
+ pageSize: 6,
+ videoFrom: 'goodsSimilarly',
+ goodsIds: [],
+ currentVideoId: ''
}
- this.startPauseTime = 0;
- // 鎾斁褰撳墠瑙嗛
- if (this.videoContexts[this.currentIndex]) {
- this.videoContexts[this.currentIndex].play();
- }
+ // 濡傛灉鍓╀綑瑙嗛涓嶈冻锛岃Е鍙戣姹傝幏鍙栨洿澶氳棰�
+ if (this.videoList.length - 1 < this.currentIndex + this.videoLiveOffset) {
+ this.loadVideos()
+ }
},
+
+ // 寮�濮嬭Е鎽�
+ handleSwiperStart(e) {
+ this.touchXY.startX = e.touches[0].pageX
+ this.touchXY.startY = e.touches[0].pageY
+ },
+ // 瑙︽懜涓�
+ handleSwiperMove(e) {
+ this.touchXY.endX = e.touches[0].pageX
+ this.touchXY.endY = e.touches[0].pageY
+ },
+ // 缁撴潫瑙︽懜
+ async handleSwiperEnd(item) {
+ // 闃叉婊戝姩婊氬姩鏉′篃瑙﹀彂璺宠浆
+ if (this.showProcess) {
+ return
+ }
+
+ const diffX = this.touchXY.endX - this.touchXY.startX
+ const diffY = this.touchXY.endY - this.touchXY.startY
+
+ // 鍒ゆ柇鏄惁鏄í鍚戞粦鍔紙X杞村彉鍖栧ぇ浜嶻杞村彉鍖栵級
+ if (Math.abs(diffX) > Math.abs(diffY)) {
+ if (diffX > 0) {
+ console.log('鍙虫粦')
+ if (this.similaryVideoIndex !== 0) {
+ // 濡傛灉婊戝姩浜嗘í鍚戣棰戯紝閭d箞鍙虫粦灏卞仛瑙嗛鍒囨崲鑰屼笉鏄烦杞晢鍝侀〉
+ // 鍒囨崲涓嬩竴涓棰�
+ const oldIndex = this.similaryVideoIndex;
+ this.similaryVideoIndex = Math.max(this.similaryVideoIndex - 1, 0);
+ if (this.similaryVideoIndex < oldIndex) {
+ // 鎶婄珫鍚戣棰戠殑褰撳墠鎾斁浣嶇疆鏇挎崲涓烘í鍚戣棰戠殑褰撳墠绱㈠紩鍏冪礌
+ const video = this.similarlyVideoList[this.similaryVideoIndex];
+ video["updateKey"] = video.id + this.similaryVideoIndex
+ this.videoList.splice(this.currentIndex, 1, video);
+ // this.videoList[this.currentIndex] = video
+ }
+ }
+ else if (item.goodsList && item.goodsList.length > 0) {
+ this.jumpToPay(item.id)
+ }
+ } else {
+ console.log('宸︽粦')
+ if (this.similarlyVideoList.length < 1 || this.similarlyVideoList.length - this.similaryVideoIndex - 1 <= 3) {
+ // 鐩稿叧瑙嗛涓虹┖鎴栬�呭墿浣欒棰戜笉瓒筹紝瑙﹀彂鍔犺浇鐩稿叧瑙嗛
+ await this.getGoodsSimilarly()
+ }
+ // 鍒囨崲涓嬩竴涓棰�
+ const oldIndex = this.similaryVideoIndex;
+ this.similaryVideoIndex = Math.min(this.similaryVideoIndex + 1, this.similarlyVideoList.length - 1);
+ if (this.similaryVideoIndex > oldIndex) {
+ // 鎶婄珫鍚戣棰戠殑褰撳墠鎾斁浣嶇疆鏇挎崲涓烘í鍚戣棰戠殑褰撳墠绱㈠紩鍏冪礌
+ const video = this.similarlyVideoList[this.similaryVideoIndex];
+ video["updateKey"] = video.id + this.similaryVideoIndex
+ this.videoList.splice(this.currentIndex, 1, video);
+ }
+ }
+ }
+ // 閲嶇疆鍧愭爣
+ this.touchXY = {
+ startX: 0,
+ endX: 0,
+ startY: 0,
+ endY: 0
+ }
+ },
// 鑾峰彇杩涘害鏉$殑浣嶇疆鍜屽昂瀵�
getBarRect() {
@@ -703,7 +880,8 @@
this.startProgress = this.progress; // 璁板綍寮�濮嬫椂鐨勮繘搴�
this.startX = e.touches[0].pageX;
console.log("璁板綍寮�濮嬫椂鐨勮繘搴�", this.startProgress);
- this.videoContexts[this.currentIndex].pause()
+ const videoContext = uni.createVideoContext(`video${this.currentIndex}`, this);
+ videoContext.pause()
// this.updateProgress(e);
},
@@ -711,7 +889,6 @@
handleTouchMove(e) {
if (!this.isDragging || !this.barWidth) return;
clearTimeout(this.processHidenTimer)
- this.videoContexts[this.currentIndex].pause()
this.updateProgress(e);
},
@@ -719,11 +896,12 @@
handleTouchEnd() {
this.isDragging = false;
console.log("婊戝姩缁撴潫", this.duration * this.progress);
- this.videoContexts[this.currentIndex].seek(this.duration * this.progress / 100)
- this.videoContexts[this.currentIndex].play()
+ const videoContext = uni.createVideoContext(`video${this.currentIndex}`, this);
+ videoContext.seek(this.duration * this.progress / 100)
+ videoContext.play()
this.processHidenTimer = setTimeout(() => {
- this.showProcess = false;
- }, 1000);
+ this.showProcess = false;
+ }, 1000);
},
// 鏇存柊杩涘害
@@ -736,7 +914,6 @@
// 灏嗗儚绱犺窛绂昏浆鎹负杩涘害澧為噺
const deltaProgress = (deltaX / this.barWidth) * 100;
- console.log("杩涘害澧為噺", deltaProgress);
// 璁$畻鏂拌繘搴� = 寮�濮嬫椂鐨勮繘搴� + 婊戝姩澧為噺
let newProgress = this.startProgress + deltaProgress;
@@ -768,18 +945,40 @@
}
})
},
+ // 鐐硅禐/鍙栨秷鐐硅禐
+ toggleThumbsUp(item, index) {
+ let data = {
+ refId: item.id,
+ thumbsUpType: 'video'
+ }
+ const beforeThumbsUp = item.thumbsUp
+ const beforeThumbsUpNum = item.thumbsUpNum
+ if(item.thumbsUp) {
+ this.videoList[index].thumbsUp = false
+ this.videoList[index].thumbsUpNum -= 1
+ } else {
+ this.videoList[index].thumbsUp = true
+ this.videoList[index].thumbsUpNum += 1
+ }
+ changeThumbsUp(data).then(res => {
+ if(res.data.code !== 200) {
+ this.videoList[index].thumbsUp = beforeThumbsUp
+ this.videoList[index].thumbsUpNum = beforeThumbsUpNum
+ }
+ })
+ },
// 鍗曞嚮灞忓箷锛氭殏鍋滄垨缁х画鎾斁
togglePlay(index) {
+ console.log("鍗曞嚮瑙嗛", index);
+ const videoContext = uni.createVideoContext(`video${index}`, this);
if(this.currentVideoIsPlaying) {
- this.videoContexts[index].pause();
+ videoContext.pause();
} else {
- this.videoContexts[index].play();
+ videoContext.play();
}
},
// 瑙嗛鎾斁浜嬩欢
onPlay(id, index) {
- this.getBarRect()
- this.progress = 0
if(index === this.currentIndex) {
this.currentVideoIsPlaying = true;
if(! this.duration) {
@@ -788,9 +987,11 @@
this.formartDuration = this.sliderFormatTime(this.duration);
}
} else {
- this.currentVideoIsPlaying = false;
return
}
+ this.getBarRect()
+ this.progress = 0
+ console.log(id, index, "瑙﹀彂鎾斁");
this.playRecord.videoId = id;
// 娌″垵濮嬪寲鎵嶈祴鍊硷紝鍥犱负涓�涓棰戦噸澶嶆挱鏀緊nPlay浼氶噸澶嶈Е鍙�
if(this.playRecord.startPlayTime === 0) {
@@ -800,6 +1001,7 @@
const duration = Date.now() - this.startPauseTime
this.totalPauseTime += duration
}
+ this.videoLoading = false
},
// 瑙嗛鏆傚仠浜嬩欢
@@ -807,11 +1009,8 @@
console.log(index, "瑙﹀彂鏆傚仠");
if(index === this.currentIndex) {
this.currentVideoIsPlaying = false;
- } else {
- this.currentVideoIsPlaying = true;
- return
+ this.startPauseTime = Date.now()
}
- this.startPauseTime = Date.now()
},
// 瑙嗛缁撴潫浜嬩欢
@@ -821,9 +1020,17 @@
// 璁板綍鎾斁鏃堕暱
onTimeUpdate(e) {
+ this.videoLoading = false
this.playRecord.playAt = e.detail.currentTime
this.currentTime = e.detail.currentTime;
this.progress = (e.detail.currentTime / this.duration) * 100
+ },
+ // 瑙嗛缂撳啿
+ videoWaiting(index) {
+ if (index === this.currentIndex) {
+ console.log("瑙嗛缂撳啿涓�傘�傘��");
+ this.videoLoading = true;
+ }
},
// 鑾峰彇瑙嗛鎬绘椂闀�
onLoadedMetadata(e) {
@@ -872,7 +1079,7 @@
.video-item {
width: 100%;
height: 100%;
- object-fit: cover;
+ /* object-fit: cover; */
}
.play-icon {
position: absolute;
@@ -888,7 +1095,7 @@
.video-info {
width: 70%;
position: absolute;
- bottom: 20px;
+ bottom: 40px;
left: 20px;
color: #f8f8f8;
z-index: 10;
@@ -1231,7 +1438,7 @@
flex-direction: column;
align-items: center;
position: absolute;
- bottom: 0;
+ bottom: 20px;
width: 100%;
}
@@ -1260,7 +1467,7 @@
.progress-text {
margin-top: 10px;
font-size: 14px;
- color: #666;
+ color: #fff;
}
.swiper-box {
width: 100%;
--
Gitblit v1.8.0