你换一种对videoList的遍历本地文件夹的方式,这个fs浏览器不支持<template> <div class="video-container"> <video ref="videoPlayer" @ended="playNextVideo" @click="toggleFullScreen" controls></video> </div> </template> <script> import fs from 'fs'; export default { name: 'FullScreenVideoPlayer', data() { return { currentVideoIndex: 0, // 当前播放的视频索引 videoList: [], // 视频列表 autoplayInterval: null // 自动播放的定时器 } }, computed: { currentVideoSrc() { return this.videoList[this.currentVideoIndex] } }, mounted() { const video = this.$refs.videoPlayer; // 读取本地文件夹内的视频文件 fs.readdir('./src/video', (err, files) => { if (err) throw err; // 过滤非视频文件 const videoFiles = files.filter(file => file.endsWith('.mp4')) // 将视频文件的路径存入 videoList 数组中 this.videoList = videoFiles.map(file => './src/video/' + file) // 自动播放 video.src = this.currentVideoSrc; video.play(); this.autoplayInterval = setInterval(() => { this.playNextVideo() }, 5000); }); video.addEventListener('ended', () => { this.playNextVideo() }); }, beforeUnmounted() { // 清除定时器 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-03-21 15:40:13 浏览: 114
解决浏览器不支持video问题
可以使用 Node.js 的 fs 模块来实现遍历本地文件夹,代码如下:
```javascript
const fs = require('fs');
fs.readdir('./src/video', (err, files) => {
if (err) throw err;
const videoFiles = files.filter(file => file.endsWith('.mp4'));
const videoList = videoFiles.map(file => './src/video/' + file);
this.videoList = videoList;
});
```
这段代码与之前的差别在于,使用了 require 导入了 fs 模块,并且使用了 fs.readdir 方法来读取指定文件夹中的文件,然后过滤出以 .mp4 结尾的视频文件,最后将视频文件的路径存入 videoList 数组中。
阅读全文