问题:在项目中动态加载视频,如何让视频懒加载,以便视频全部加载完?

遇到的问题:

在项目中使用原生<video>标签动态加载播放视频,测试过程中发现,谷歌和火狐浏览器所呈现出来的效果就不相同。那么,如何让视频懒加载,以便视频全部加载完?

解决思路:

动态加载视频是否可以一次性全部加载完成,是否可以点击播放。这个问题看上去简单,但是由于PC/iOS/Android这些不同平台、不同的浏览器内核、甚至相同内核的不同版本,所实现的<video>属性、方法和事件差异较大,解决兼容性问题又给开发造成了很大困扰。

那么,视频是否可以延迟加载,来达到我们需要的目的呢?

解决方法:

正常情况下加载视频,都是使用<video>标签,那么对于一些需要用户自己播放的视频,最好指定<video>标签的preload属性,“preload=none”,这样浏览器就不会预加载任何视频数据。
为了占用页面的空间,我们用poster属性为其占位,展示封面图:

<video controls preload="none" poster="封面图" :src="videoUrl"></video>
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 JavaScript 动态加载全屏视频并添加关闭按钮,你可以使用 HTML5 的 `<video>` 元素,结合 JavaScript 来实现。 首先,我们需要在 HTML 创建一个 `<video>` 元素和一个按钮: HTML 代码: ```html <button id="closeBtn">关闭视频</button> <video id="fullscreenVideo" controls></video> ``` 接下来,在 JavaScript ,我们可以通过获取 `<video>` 元素的引用来动态加载视频,并为关闭按钮添加点击事件监听器: JavaScript 代码: ```javascript const videoElement = document.getElementById("fullscreenVideo"); const closeBtn = document.getElementById("closeBtn"); // 加载视频 function loadVideo() { const videoSource = "path/to/video.mp4"; videoElement.src = videoSource; videoElement.play(); } // 关闭视频 function closeVideo() { videoElement.pause(); videoElement.src = ""; } // 监听关闭按钮点击事件 closeBtn.addEventListener("click", closeVideo); // 加载视频 loadVideo(); ``` 在上述代码,我们首先通过 `document.getElementById()` 方法获取到 `<video>` 元素和关闭按钮的引用。 然后,我们定义了 `loadVideo()` 函数,用于动态加载视频。你需要将 `"path/to/video.mp4"` 替换为你自己的视频路径。在函数,我们将视频路径赋值给 `<video>` 元素的 `src` 属性,并调用 `play()` 方法来播放视频。 接下来,我们定义了 `closeVideo()` 函数,用于关闭视频。在函数,我们调用 `pause()` 方法暂停视频播放,并将 `<video>` 元素的 `src` 属性设置为空字符串,以清除视频源。 最后,我们通过 `addEventListener()` 方法为关闭按钮添加了一个点击事件监听器,当点击按钮时,会触发 `closeVideo()` 函数来关闭视频。 通过调用 `loadVideo()` 函数,可以在页面加载时自动加载视频。你也可以根据需要在其他地方触发 `loadVideo()` 函数来动态加载视频

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值