整体看来,这个官网的 Demo 就足以让我心动选择它了!
详细功能
但功能肯定不止这些,接下来我们再回到 GitHub 主页看看它的介绍,它的介绍如下:
-
📼 HTML 视频和音频、YouTube 和 Vimeo - 支持主要格式
-
💪 无障碍- 完全支持 VTT 字幕和屏幕阅读器
-
🔧 可定制- 我们可以自定义各种选项来让播放器呈现不同的 UI。
-
😎 干净的 HTML - 使用正确的元素,比如
<input type="range">
控制音量和使用<progress>
控制进度。 -
📱 响应式- 适用于任何屏幕尺寸
-
💵 获利- 从您的视频中赚钱
-
📹 流式传输- 支持 hls.js、Shaka 和 dash.js 流式播放
-
🎛 API - 通过标准化 API 切换播放、音量、搜索等
-
🎤 事件- 不用搞乱 Vimeo 和 YouTube API,所有事件都是跨格式标准化的
-
🔎 全屏- 支持原生全屏并回退到“全窗口”模式
-
⌨️ 快捷键- 支持键盘快捷键
-
🖥 画中画- 支持画中画模式
-
📱 Playsinline - 支持
playsinline
属性 -
🏎 速度控制- 即时调整速度
-
📖 多个字幕- 支持多个字幕轨道
-
🌎 i18n 支持- 支持控件的国际化
-
👌 预览缩略图- 支持显示预览缩略图
-
🤟 没有框架- 用“vanilla” ES6 JavaScript 编写,不需要 jQuery
-
💁♀️ SASS - 包含在您的构建过程中
可谓是非常之强大了!
那这个具体怎么使用呢?下面我们再来介绍下。
使用
要使用 Plyr,可以直接引用 Plyr 的 CDN 文件,添加如下引用即可:
当然 Plyr 还支持 Node.js 项目直接引用,安装方式如下:
yarn add plyr
然后这样引用即可:
import Plyr from ‘plyr’;
const player = new Plyr(‘#player’);
Plyr 有一个非常强的功能,那就是它扩展了原生 HTML5 中 Media 相关标签的功能,比如我们现在可以给 video 标签添加一些自定义的功能,比如添加一个 data-poster
属性来当作视频预览封面,比如添加一个 track 标签来添加字幕文件,写法如下:
同时 Plyr 还支持嵌入一些外链网站,比如 Youtube、Vimeo (如果支持中国的一些视频网站就好了)。
如果要引用 Youtube,那么只需要给 div 添加一些 class 即可,比如:
src=“https://www.youtube.com/embed/bTqVqk7FSmY?origin=https://plyr.io&iv_load_policy=3&modestbranding=1&playsinline=1&showinfo=0&rel=0&enablejsapi=1”
allowfullscreen
allowtransparency
allow=“autoplay”
样式自定义
另外 Plyr 还支持我们添加一些自定义样式,我们需要使用 CSS Custom Properties 即可轻松实现样式复写。
比如说,我们想要把默认的按钮颜色由蓝色改成红色,那就可以直接添加 CSS 样式:
:root {
–plyr-color-main: red
}
这样 Plyr 就可以读取这个 CSS 属性,然后实现样式控制了。
更多的自定义样式名称可以参考:https://github.com/sampotts/plyr#customizing-the-css。
配置自定义
刚才我们还提到了,Plyr 支持我们配置一些 Options 选项来实现一些自定义的功能,这里功能也非常全面,比如:*
-
settings:是一个列表,我们可以控制 settings 的功能列表,比如配置成
['captions', 'quality', 'speed', 'loop']
即可控制设置功能里面出现字幕、分辨率、速度、循环播放等控制。 -
i18n:可以控制多语言配置。
-
blankVideo:如果是空的视频的话,默认播放什么。
HTTP
-
HTTP 报文结构是怎样的?
-
HTTP有哪些请求方法?
-
GET 和 POST 有什么区别?
-
如何理解 URI?
-
如何理解 HTTP 状态码?
-
简要概括一下 HTTP 的特点?HTTP 有哪些缺点?
-
对 Accept 系列字段了解多少?
-
对于定长和不定长的数据,HTTP 是怎么传输的?
-
HTTP 如何处理大文件的传输?
-
HTTP 中如何处理表单数据的提交?
-
HTTP1.1 如何解决 HTTP 的队头阻塞问题?
-
对 Cookie 了解多少?
-
如何理解 HTTP 代理?
-
如何理解 HTTP 缓存及缓存代理?
-
为什么产生代理缓存?
-
源服务器的缓存控制
-
客户端的缓存控制
-
什么是跨域?浏览器如何拦截响应?如何解决?