在vue3环境下,视频依次播放,播放完最后一个视频的时候重新从第一个视频开始播放<template> <div class="video-container"> <video ref="videoPlayer" @ended="playNextVideo" @click="toggleFullScreen" controls></video> </div> </template> <script> export default { name: 'FullScreenVideoPlayer', data() { return { currentVideoIndex: 0, // 当前播放的视频索引 videoList: [ // 视频列表 { src: '/src/video/666.mp4' }, { src: '/src/video/777.mp4' }, { src: '' } ], autoplayInterval: null // 自动播放的定时器 } }, computed: { currentVideoSrc() { return this.videoList[this.currentVideoIndex].src } }, mounted() { const video = this.$refs.videoPlayer video.addEventListener('ended', () => { this.playNextVideo() }) // 自动播放 video.play() this.autoplayInterval = setInterval(() => { this.playNextVideo() }, 5000) }, beforeUnmount() { // 清除定时器 clearInterval(this.autoplayInterval) }, methods: { playNextVideo() { const video = this.$refs.videoPlayer this.currentVideoIndex++ if (this.currentVideoIndex >= this.videoList.length) { this.currentVideoIndex = 0 } video.src = this.currentVideoSrc video.play() }, toggleFullScreen() { const video = this.$refs.videoPlayer if (document.fullscreenElement) { document.exitFullscreen() } else { video.requestFullscreen() } } } } </script> <style scoped> .video-container { width: 100%; height: 100%; } video { width: 100%; height: 100%; object-fit: contain; } </style>
时间: 2024-02-14 18:14:32 浏览: 349
vue3仿抖音视频滑动切换播放
5星 · 资源好评率100%
这段代码中,视频播放列表是通过数组videoList实现的,每次视频播放结束时,会调用playNextVideo方法,方法中会将currentVideoIndex加1,如果currentVideoIndex已经超过了videoList的长度,则将其重置为0,然后将video的src属性设置为当前视频的路径,再调用play方法播放视频。同时,还有一个autoplayInterval定时器,每隔5秒钟就会调用playNextVideo方法播放下一个视频。这样就可以实现视频依次播放,播放完最后一个视频后重新从第一个视频开始播放的效果。另外,还有一个toggleFullScreen方法,用于全屏播放视频。
阅读全文