当前位置:首页>>问题

uniapp页面里面的视频,在app端如何实现显示封面图

一开始使用了video组件里面的poster,然后利用canvas获取视频的第一帧作为封面图,结果一运行起来很多莫名其妙的错误。所以我想了一个简单的方法,页面加载后,让全部视频先自动播放,播放一秒后,再全部自动停止,没想到这个方案效果还挺好,直接上代码:<videov-if="item.video_

admin

一开始使用了video组件里面的poster,然后利用canvas获取视频的第一帧作为封面图,结果一运行起来很多莫名其妙的错误。

所以我想了一个简单的方法,页面加载后,让全部视频先自动播放,播放一秒后,再全部自动停止,没想到这个方案效果还挺好,直接上代码:

<video
     v-if="item.video_status" 
     class="model-card" 
     :src="item.url"
     :id="`video-${index}`"
     :direction="0" 
     :show-play-btn="true" 
     mode="widthFix"
     autoplay="true"
     muted="true"
     @play="onVideoPlay(index)"
 ></video>

1、先让视频自动静音播放:muted="true",autoplay="true"

2、然后监听播放事件:@play="onVideoPlay(index)"  <!-- 监听播放事件 -->

3、最后执行停止播放视频

// 视频开始播放时触发
onVideoPlay(index) {
    const videoId = `video-${index}`;
    const videoContext = uni.createVideoContext(videoId, this);
    // 1秒后自动暂停
    setTimeout(() => {
      videoContext.pause(); // 暂停视频
    }, 1000);
},



返回顶部