js使用video和select循环播放视频列表,既可以在select中选择要播放的视频,当不选择的时候,循环播放视频列表请给我写个详细完整的例子
时间: 2024-05-10 10:19:49 浏览: 89
好的,请看下面的例子:
```html
<!DOCTYPE html>
<html>
<head>
<title>循环播放视频列表</title>
</head>
<body>
<h1>视频列表</h1>
<select id="video-list" onchange="changeVideo()">
<option value="">请选择要播放的视频</option>
<option value="video1.mp4">视频1</option>
<option value="video2.mp4">视频2</option>
<option value="video3.mp4">视频3</option>
</select>
<br><br>
<video id="video-player" src="" autoplay loop controls></video>
<script>
// 获取视频列表元素
var videoList = document.getElementById('video-list');
// 获取视频播放器元素
var videoPlayer = document.getElementById('video-player');
// 定义视频列表数组
var videos = ['video1.mp4', 'video2.mp4', 'video3.mp4'];
// 定义当前播放的视频索引
var currentVideo = 0;
// 定义播放视频的函数
function playVideo(videoIndex) {
if (videoIndex < videos.length) {
videoPlayer.src = videos[videoIndex];
} else {
videoPlayer.src = videos[0];
}
currentVideo = videoIndex;
videoPlayer.play();
// 更新选中的视频列表项
videoList.value = videos[currentVideo];
}
// 定义切换视频函数
function changeVideo() {
var selectedVideo = videoList.value;
if (selectedVideo !== '') {
var videoIndex = videos.indexOf(selectedVideo);
playVideo(videoIndex);
}
}
// 初始播放第一个视频
playVideo(currentVideo);
// 监听视频播放结束事件,播放下一个视频
videoPlayer.addEventListener('ended', function() {
if (currentVideo === videos.length - 1) {
playVideo(0);
} else {
playVideo(currentVideo + 1);
}
});
</script>
</body>
</html>
```
在上面的例子中,我们定义了一个视频列表和一个视频播放器,通过JavaScript实现了循环播放视频列表的功能。
首先,我们定义了一个视频列表的下拉框,其中包含了三个视频选项,还有一个默认选项"请选择要播放的视频",该选项的值为空。
接着,我们定义了一个视频播放器元素,并设置了autoplay、loop和controls属性,分别表示自动播放、循环播放和显示控件。
然后,我们通过JavaScript创建了一个视频列表数组,包含了三个视频的文件名,还定义了一个变量currentVideo表示当前播放的视频索引,初始值为0,也就是播放第一个视频。
接下来,我们定义了一个播放视频的函数playVideo,根据指定的索引播放对应的视频,如果索引超过了最大索引,则播放第一个视频,还更新了选中的视频列表项。
然后,我们定义了一个切换视频的函数changeVideo,当选中的视频值不为空时,找到对应的视频索引并播放之。
最后,我们初始化播放第一个视频,并监听视频播放结束事件,播放下一个视频。
这样就实现了一个简单的循环播放视频列表的功能。希望这个例子能够帮助到你,如果有不懂的地方欢迎继续咨询。
阅读全文