zhengshuiqi 3 years ago
parent
commit
efabe2437f
  1. 73
      pages/index/index.vue

73
pages/index/index.vue

@ -12,6 +12,10 @@
export default { export default {
data() { data() {
return { return {
// interval: null,
// frameIndex: 0,
// frames: [],
html: '<video :autoplay="true" :enable-progress-gesture="true" muted="" style="width: 100%;" :src="item.goods_video" :mobilenet-hint-type="1" class="video_play" :http-cache="true" loop object-fit="contain" :direction="0" :show-mute-btn="true" @touchstart="touchStart" @touchend="touchEnd" @pause="VideoPuse()"></video>',
video: true, video: true,
// register // register
register: -1, register: -1,
@ -325,6 +329,21 @@
}, },
methods: { methods: {
// onPlay() {
// this.frames = this.$refs.videoContext.getFrames()
// this.interval = setInterval(() => {
// this.frameIndex++
// if (this.frameIndex >= this.frames.length) {
// this.frameIndex = 0
// }
// }, 100)
// },
// onPause() {
// clearInterval(this.interval)
// },
// onTimeUpdate() {
// this.frameIndex = Math.floor(this.$refs.videoContext.currentTime * 10)
// },
isVideo() { isVideo() {
this.video = true this.video = true
}, },
@ -1155,36 +1174,27 @@
block_name: item.short_name, block_name: item.short_name,
goodid: item.id goodid: item.id
}) })
//
const videoContext = uni.createVideoContext('myVideo');
// const canvas = uni.createCanvasContext('videoCanvas')
// // canvas.width = 400
let videoFrames = []; // canvas.height = 300
let videoDuration = 0; // setInterval(() => {
uni.getVideoInfo({ // const frame = item.goods_video.currentTime * item.goods_video.frameRate
src: item.goods_video, // canvas.drawImage(item.goods_video, 0, 0, canvas.width, canvas.height)
success: (res) => { // canvas.draw()
videoDuration = res.duration; // }, 500 / item.goods_video.frameRate)
let frameCount = Math.ceil(videoDuration * 25);
for (let i = 0; i < frameCount; i++) { // let frames = item.goods_video.split(';');
videoFrames.push(item.goods_video + '#t=' + (i / 25)); // let i = 0;
} // let interval = setInterval(() => {
} // if (i < frames.length) {
}); // console.log(frames[i]);
// i++;
// } else {
// setInterval // clearInterval(interval);
let currentFrameIndex = 0; // }
let interval = setInterval(() => { // }, 1000);
if (currentFrameIndex >= videoFrames.length) { // console.log(frames);
clearInterval(interval);
return;
}
videoContext.src = videoFrames[currentFrameIndex];
currentFrameIndex++;
}, 40);
console.log(videoFrames);
}) })
//////console.log(this.bestlist,'') //////console.log(this.bestlist,'')
@ -1667,11 +1677,12 @@
<view v-for="(item,index) in leftList" :key="index"> <view v-for="(item,index) in leftList" :key="index">
<block v-if="item.goods_video"> <block v-if="item.goods_video">
<view style="position: relative; height: 225px;" > <view style="position: relative; height: 225px;" >
<video :autoplay="true" :enable-progress-gesture="true" muted="" style="width: 100%;" <video x-webkit-airplay="allow" x5-video-player-type="h5" :autoplay="true" :enable-progress-gesture="true" muted="" style="width: 100%;"
:mobilenet-hint-type="1" class="video_play" :http-cache="true" loop :mobilenet-hint-type="1" class="video_play" :http-cache="true" loop
object-fit="contain" :direction="0" :src="item.goods_video" :show-mute-btn="true" object-fit="contain" :direction="0" :src="item.goods_video" :show-mute-btn="true"
@touchstart="touchStart" @touchend="touchEnd" @pause="VideoPuse()"> @touchstart="touchStart" @touchend="touchEnd" @pause="VideoPuse()">
</video> </video>
<!-- <video-context ref="videoContext" :src="item.goods_video" @play="onPlay" @pause="onPause" @timeupdate="onTimeUpdate"></video-context> -->
</view> </view>
<view class="play_icon" v-show="!video" @click="isVideo"></view> <view class="play_icon" v-show="!video" @click="isVideo"></view>
</block> </block>
@ -1697,7 +1708,7 @@
<view v-for="(item1,index1) in rightList" :key="index1"> <view v-for="(item1,index1) in rightList" :key="index1">
<block v-if="item1.goods_video"> <block v-if="item1.goods_video">
<view style="position: relative; height: 225px;"> <view style="position: relative; height: 225px;">
<video x5-video-player-type="h5-page" :autoplay="true" :enable-progress-gesture="true" muted="" style="width: 100%;" <video x-webkit-airplay="allow" x5-video-player-type="h5" :autoplay="true" :enable-progress-gesture="true" muted="" style="width: 100%;"
:mobilenet-hint-type="1" class="video_play" :http-cache="true" @pause="VideoPuse()" loop :mobilenet-hint-type="1" class="video_play" :http-cache="true" @pause="VideoPuse()" loop
object-fit="contain" :direction="0" :src="item1.goods_video" :show-mute-btn="true" object-fit="contain" :direction="0" :src="item1.goods_video" :show-mute-btn="true"
@touchstart="touchStart" @touchend="touchEnd"> @touchstart="touchStart" @touchend="touchEnd">

Loading…
Cancel
Save