当前位置: 首页 > article >正文

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

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

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


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

/* 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>


http://www.kler.cn/a/387563.html

相关文章:

  • 无插件H5播放器EasyPlayer.js网页web无插件播放器vue和react详细介绍
  • Spring Boot 核心配置文件
  • 深入了解Git、GitHub、GitLab及其应用技巧
  • Python教程笔记(1)
  • jQuery笔记
  • 【LeetCode】【算法】23. 合并K个升序链表
  • 当爱遇见旋律:陆瑶记忆中的音符碎片!
  • 高速光耦——推动工业生产自动化飞跃的关键力量
  • 当今陪玩系统小程序趋势,陪玩系统源码搭建后的适用于哪些平台
  • 《ASP.Net Core技术内幕与项目实战》读书笔记_1
  • 引入 axios,根据 api 文档生成调用接口
  • AI大模型重塑软件开发流程:从自动化编码到智能协作的未来展望
  • 【MM-Align】学习基于输运的最优对齐动力学,快速准确地推断缺失模态序列
  • 【春秋云镜】CVE-2023-2130
  • springboot系列--web相关知识探索七
  • 使用 pd.ExcelWriter 创建多工作表 Excel 文件的详细教程
  • JAVA中的string和stringbuffer
  • SQL进阶技巧:如何计算复合增长率?
  • 如何在Python中实现一个简单的搜索引擎:从零开始的指南
  • Vue中父组件通过v-model向子组件传对象参数
  • 图像识别算法优化:提升识别精度与速度
  • 记一次文件包含刷题(伪协议篇)
  • Leetcode 买卖股票的最佳时机 Ⅱ
  • 思考:linux Vi Vim 编辑器的简明原理,与快速用法之《 7 字真言 》@ “鱼爱返 说 温泉哦“ (**)
  • 华为云计算知识总结——及案例分享
  • kaggle学习 eloData项目(2)-数据清洗