Typecho利用HTML5代码实现本地视频播放

插件开发及发布

版主: woniou

cyclists
帖子: 22
注册时间: 2015年 4月 27日 11:16
来自: https://sep.cc
联系:

Typecho利用HTML5代码实现本地视频播放

帖子 cyclists »

注:Typecho1.1新版本的Markdown语法不兼容导致原生HTML5视频标签解析播放失败的解决方法已经给出:https://sep.cc/Markdown.html

效果预览:https://sep.cc/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>


注:自行替换链接为自己的域名链接地址!

效果预览:https://sep.cc/Unbroken.html
上次由 cyclists 在 2021年 9月 27日 00:22,总共编辑 3 次。
头像
ClayMore
帖子: 2481
注册时间: 2007年 11月 29日 02:55
来自: Sleeping Forest
联系:

Re: Typecho利用HTML5代码实现本地视频播放

帖子 ClayMore »

HTML5 danmaku video playe -- DPlayer
cn1860
帖子: 5
注册时间: 2017年 10月 17日 13:27

Re: Typecho利用HTML5代码实现本地视频播放

帖子 cn1860 »

1.1好像不能用
XinSong
帖子: 16
注册时间: 2017年 10月 20日 15:10
联系:

Re: Typecho利用HTML5代码实现本地视频播放

帖子 XinSong »

不错,但是会不会考虑不兼容?
yaoge
帖子: 307
注册时间: 2010年 6月 5日 08:09
联系:

Re: Typecho利用HTML5代码实现本地视频播放

帖子 yaoge »

1.1只显示代码了,怎么解决
cyclists
帖子: 22
注册时间: 2015年 4月 27日 11:16
来自: https://sep.cc
联系:

Re: Typecho利用HTML5代码实现本地视频播放

帖子 cyclists »

cn1860 写了:1.1好像不能用

1.1版本的MD语法不兼容导致的,只能等待官方修复,要么就回退到1.0版本。
cyclists
帖子: 22
注册时间: 2015年 4月 27日 11:16
来自: https://sep.cc
联系:

Re: Typecho利用HTML5代码实现本地视频播放

帖子 cyclists »

yaoge 写了:1.1只显示代码了,怎么解决

1.1版本的MD语法不兼容导致的,只能等待官方修复,要么就回退到1.0版本。
cyclists
帖子: 22
注册时间: 2015年 4月 27日 11:16
来自: https://sep.cc
联系:

Re: Typecho利用HTML5代码实现本地视频播放

帖子 cyclists »

yaoge 写了:1.1只显示代码了,怎么解决

去我的网站,我已经给出修复方法了,https://inwao.com
cyclists
帖子: 22
注册时间: 2015年 4月 27日 11:16
来自: https://sep.cc
联系:

Re: Typecho利用HTML5代码实现本地视频播放

帖子 cyclists »

站点信息已经更新了
canon
帖子: 1
注册时间: 2018年 5月 29日 16:22

Re: Typecho利用HTML5代码实现本地视频播放

帖子 canon »

没有插件呢?
回复