注:Typecho1.1新版本的Markdown语法不兼容导致原生HTML5视频标签解析播放失败的解决方法已经给出:https://inwao.com/Markdown.html
最新解决方法:查看程序目录/var/Markdown.php的代码
第37行
$parser->_commonWhiteList .= ‘|img|cite|embed|iframe’;
改成
$parser->_commonWhiteList .= ‘|img|cite|embed|iframe|video|source’;
效果预览:https://inwao.com/Unbroken.html
其实之前我一直在用羽中的视频播放插件JWPlayer,效果感觉不够理想,点击全屏播放时不能完全全屏,有时候播放转换MP4视频无法解析,分析JWPlayer插件时,发现利用的正是HTML5,何不直接使用HTML5实现更简单更纯粹的播放效果呢?
在自己分析过程中,我只用到自己常用的标签属性,如果有其他属性,其实都可以添加的。
HTML5 Video标签的使用
本人自用Video标签含有src、poster、preload、controls、width、height等几个属性, 以及一个内部使用的标签<source>。
(1) src属性和poster属性
你能想象src属性是用来干啥的。跟<img>标签的一样,这个属性用于指定视频的地址。而poster属性用于指定一张图片,在当前视频数据无效时显示(预览图)。视频数据无效可能是视频正在加载,可能是视频地址错误等等。
<video width=”658″ height=”444″ src=”https://googlo.in/usr/uploads/2017/03/1537548116.mp4″poster=”https://googlo.in/usr/uploads/2017/03/4008215693.jpg”></video>
(2) preload属性
这个属性也能通过名字了解用处,此属性用于定义视频是否预加载。属性有三个可选择的值:none、metadata、auto。如果不使用此属性,默认为auto。
<video width=”658″ height=”444″ src=”https://googlo.in/usr/uploads/2017/03/1537548116.mp4″ poster=”https://googlo.in/usr/uploads/2017/03/4008215693.jpg” preload=”auto”></video>
None:不进行预加载。使用此属性值,可能是页面制作者认为用户不期望此视频,或者减少HTTP请求。
Metadata:部分预加载。使用此属性值,代表页面制作者认为用户不期望此视频,但为用户提供一些元数据。
Auto:全部预加载。
(3) controls属性
<video width=”658″ height=”444″ poster=”https://googlo.in/usr/uploads/2017/03/4008215693.jpg” preload=”none” controls=”controls”><source src=”https://googlo.in/usr/uploads/2017/03/1537548116.mp4″ /></video>
Controls属性用于向浏览器指明页面制作者没有使用脚本生成播放控制器,需要浏览器启用本身的播放控制栏。
控制栏须包括播放暂停控制,播放进度控制,音量控制等等。
(4) width属性和height属性
width属性为视频的宽度,height属性为视频的高度,此标签不做过多讲解。
(5) source标签
<video width=”658″ height=”444″ poster=”https://googlo.in/usr/uploads/2017/03/4008215693.jpg” preload=”none” controls=”controls”><source src=”https://googlo.in/usr/uploads/2017/03/1537548116.mp4″ /></video>
Source标签用于给媒体(因为audio标签同样可以包含此标签,所以这儿用媒体,而不是视频)指定多个可选择的(浏览器最终只能选一个)文件地址,且只能在媒体标签没有使用src属性时使用。
浏览器按source标签的顺序检测标签指定的视频是否能够播放(可能是视频格式不支持,视频不存在等等),如果不能播放,换下一个。此方法多用于兼容不同的浏览器。Source标签本身不代表任何含义,不能单独出现。
此标签包含src、type、media三个属性。
src属性:用于指定媒体的地址,和video标签的一样。
Type属性:用于说明src属性指定媒体的类型,帮助浏览器在获取媒体前判断是否支持此类别的媒体格式。
Media属性:用于说明媒体在何种媒介中使用,不设置时默认值为all,表示支持所有媒介。
(6) 一个完整的例子
<video width=”658″ height=”444″ poster=”https://googlo.in/usr/uploads/2017/03/4008215693.jpg” preload=”none” controls=”controls”><source src=”https://googlo.in/usr/uploads/2017/03/1537548116.mp4″ /></video>
注:自行替换链接为自己的域名链接地址!