热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

防止HTML5视频在移动设备上下载文件-videojs

如何解决《防止HTML5视频在移动设备上下载文件-videojs》经验,为你挑选了2个好方法。

所以我目前正在建立一个包含四个视频的旋转木马的网站,每个视频都是通过挂钩到Bootstrap 3旋转木马的slide.bs.carousel活动来触发的.

每个视频都嵌入在页面中,如下所示:


现在,考虑到Apple对HTML5视频的自动播放和预加载特别强加的限制(两者都被禁用并且需要用户交互来触发播放)我决定省略移动视频并选择静态图像.这相对简单,因为阻止视频覆盖内容所需的所有内容都是隐藏它们的媒体查询.

也就是说,我发现很难阻止视频下载,而且开销很大.

例如,我有一个脚本来检查用户当前是否正在从移动设备访问,因此,我尝试过:

var check = false;
window.mobilecheck = function() {
    // Check for mobile here
    if (check === true) {
        // Device is mobile
        var videos = document.querySelectorAll('.video-js');
        for (var i = 0; i 

这成功删除了元素,但必须在DOMReady上调用,这也意味着资源已经开始下载.

如何停止在移动设备上加载视频?我想找到一个最好使用VideoJS的解决方案.



1> gdgr..:

根据Ian友好提出的建议,这是我的工作解决方案.

首先,我将每个视频的子源元素更改为具有如下属性data-src:


然后,在使用http://detectmobilebrowsers.com/上提供的脚本执行移动检查后,我修改了该脚本以包含iPad等(此处有相关的答案)我只是使用以下脚本自动更新src每个视频的属性(如果我们在我的情况下,我在台式机上:

var sources = document.querySelectorAll('video#my-id source');
// Define the video object this source is contained inside
var video = document.querySelector('video#my-id');
for(var i = 0; i

就是这样!移动设备上没有任何东西加载,我可以对它将加载或不加载的设备进行相当精细的控制.

希望这有助于某人.


很高兴我写的帮助.现在的问题是,哪一个应该被标记为答案,我的 - 这会让你走上正确的道路,或者你自己的答案?;-)
我正在思考这个!从技术上讲,我的答案是问题的正确答案,它的代码将与伪相反.为了好,我会让你决定:)
哎呀,这很严厉,因为现在当您变得友善时,我不能说是卑鄙的,所以请指定您的答案:-p
尼斯,在线外交交流!

2> Ian Devlin..:

一种方法是通过Javascript 设置元素的src属性video,并且仅基于媒体查询(使用matchMedia)进行设置.

这意味着您的大部分代码都必须转移到Javascript.

例如,您的HTML可能是这样的:


然后在你的Javascript中(这里是伪代码,而不是实际的JS):

if (window.matchMedia("(min-width: 640px)").matches) {
   // do nothing
} else {
   var videos = document.querySelectorAll('.video-js'),
       videoFile;
   for (var i = 0; i 

这样的东西可能适合你,虽然你可能不得不玩一下.


推荐阅读
author-avatar
寻找失落的咩咩羊_807
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有