网站视频过大,加载缓慢解决方法【分段加载视频】

上班无聊的时候写了一个个人网站,加了个视频,发现加载的特别慢,必应搜了一下,大部分建议都是增加服务器带宽,那为何不使用分段加载。因为优点能解决影响,缺点也会带来一个新的影响

优点能将大视频分割成多个小视频后。在播放时,先加载第一段视频,当观看第一段时,后续的视频可以在后台加载。从而减少用户等待的时间。缺点是如果视频在分割或播放切换时处理不当,会导致播放不连贯。在片段之间的过渡可能会出现明显的停顿感,影响观看。所以分段加载更适合个人使用或者要求不高的网站使用。


以下代码只是初步代码,如需使用可正常运行后根据自身想法修改

/* HTML */

复制代码
<div class="video-container">  
	<video id="video1" controls preload="auto"><source src="shipin/1.mp4" type="video/mp4"></video>
	<video id="video2" style="display:none;" controls preload="auto"><source src="shipin/2.mp4" type="video/mp4"></video>
	<video id="video3" style="display:none;" controls preload="auto"><source src="shipin/3.mp4" type="video/mp4"></video>
	<video id="video4" style="display:none;" controls preload="auto"><source src="shipin/4.mp4" type="video/mp4"></video>
</div>

/* JAVA */

复制代码
<script>  
document.addEventListener('DOMContentLoaded', (event) => {
    const videos = [
        document.getElementById('video1'),
        document.getElementById('video2'),
        document.getElementById('video3'),
        document.getElementById('video4')
    ];
  
    let currentIndex = 0;
    const totalVideos = videos.length;
	
    videos.forEach((video, index) => {
		video.addEventListener('ended',()=>{
			// 隐藏当前视频
            videos[index].style.display = 'none';
			// 更新以指向下一个视频
            currentIndex = (index + 1) % totalVideos;
			// 显示下一个视频,但不播放
            videos[currentIndex].style.display = 'block';
            // 不是第一个视频,则播放它   是第一个视频,则不播放,保持停止状态
            if(currentIndex !== 0){
				videos[currentIndex].play();
            }
        });
    });
	
    // 初始播放第一个视频
    videos[currentIndex].style.display = 'block';
    videos[currentIndex].play();
});
</script>

/* STYLE */

复制代码
<style>
    .video-container{
        position: relative;
        width: 100%;
        height: 0;
        padding-bottom: 56.25%;
        overflow: hidden;  
    }
	
    .video-container video {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }  
</style>
相关推荐
lqj_本人7 分钟前
Flutter三方库适配OpenHarmony【apple_product_name】设备型号标识符转换原理
运维·服务器·flutter
以太浮标7 分钟前
华为eNSP综合实验之- 通过SSH远程登陆设备
服务器·网络·ssh
一人の梅雨10 分钟前
京东工业平台商品详情接口进阶实战:B2B采购场景适配+合规落地+多规格解析全方案
java·大数据·人工智能
callJJ12 分钟前
Spring AI 语音合成(TTS)完全指南:OpenAI Text-to-Speech
java·人工智能·spring·语音识别·spring ai
未来之窗软件服务12 分钟前
服务器运维(三十七)日志分析redis日志工具—东方仙盟
运维·服务器·服务器运维·仙盟创梦ide·东方仙盟
重生之后端学习18 分钟前
98. 验证二叉搜索树
java·数据结构·后端·算法·职场和发展
李慕婉学姐37 分钟前
【开题答辩过程】以《智能小区物业管理系统设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·数据库·后端
m***066840 分钟前
Spring Framework 中文官方文档
java·后端·spring
黎雁·泠崖1 小时前
【魔法森林冒险】13/14 支线任务 & 计分系统:丰富性与结局
java·开发语言
SuniaWang1 小时前
Spring AI 2.x 全面指南:架构升级、工具调用、多模型生态与实战示例
java·人工智能·后端·学习·spring·框架