javascript - 通过 JavaScript matchMedia 切换 HTML 视频源
问题描述
我正在通过 HTML 标签显示视频<video>
。我想根据用户屏幕的分辨率提供一个小视频和一个大视频。一个小屏幕应该只下载小视频。不再可能直接在 HTML 中使用 media 属性执行此操作。基于matchMedia
我尝试的 JavaScript 解决方案不起作用。
我使用我在 Google 的视频 ( https://youtu.be/j5fYOYrsocs?t=356 ) 中找到的 matchMedia 尝试了以下 JavaScript 代码:
HTML:
<video>
</video>
JavaScript:
var mq = window.matchMedia('(min-width: 480px)');
if (mq.matches) {
video.src = 'http://techslides.com/demos/sample-videos/small.mp4';
}
else {
video.src = 'http://media.w3.org/2010/05/sintel/trailer.mp4';
}
这段代码虽然只产生一个空白页。看到这支笔:https ://codepen.io/blueslobster/pen/ROQjOv
解决方案
您可以简单地使用window.screen对象的width和height属性来获取屏幕的分辨率。
<video id="video"></video>
尝试使用:
var video = document.getElementById("video");
if (window.screen.width > 480) {
//video source for resolution greater than 480p
video.src = 'http://techslides.com/demos/sample-videos/small.mp4';
}else {
//video source for resolution less than 480p
video.src = 'http://media.w3.org/2010/05/sintel/trailer.mp4';
}
推荐阅读
- python - 禁止调用父类的 __init__()
- linq-to-sql - 使用与多个表连接的 Linq 表达式的动态 where 子句
- ios - 在 iOS12 上拍摄 PDF 查看器的快照
- spring - 根据操作系统下载必要的 .properties 文件
- sql-server - SQL Server - 检查内存设置的查询
- powershell - 为什么从函数调用时 PowerShell 代码的行为会有所不同?
- javascript - 如何使用 sendkeys 生成增量版本号
- tensorflow - 使用 TensorFlow 或 PyTorch 的图像相似度
- html - 如何使用 puppetetteer 将抓取的数据添加到 html 中
- kubernetes - Kubernetes 可以在 Pod 之间共享单个 GPU 吗?