H5内联视频
概述
微信上很多H5页面都会有会动的像视屏的页面,这样的效果很棒。从技术上来说,这个其实就是视屏,不过没有控制播放的按钮罢了。它们还有一个专业的名字——内联视频。下面我把自己对内联视屏的学习记录下来,供以后开发时参考,相信对其他人也有用。
内联视屏的实现
目前内联视屏只能在ios端和微信浏览器(QQ浏览器内核)里面实现。
在ios端,只需要给video加上playsinline属性就能使它内联播放,代码如下:
<video id="video" x-webkit-airplay="allow" webkit-playsinline playsinline src="video.mp4"></video>
在微信端,QQ浏览器内核对video做了优化,使它能够支持内联播放,只需要加上x5-video-player-type和x5-video-player-fullscreen属性即可。实例如下:
<video id="video" x5-video-player-type="h5" x5-video-player-fullscreen="true" x-webkit-airplay="allow" webkit-playsinline playsinline src="video.mp4"></video>
这样就实现了video在ios端和微信端的内联播放。(注意不要写controller,不然会出现控制条)
内联视屏全屏播放
对于video类元素,我们把它的宽高都设置为100%会没有效果,如果屏幕尺寸和视屏本身的尺寸不相同的话,屏幕底部或者边上都会有黑块。那么怎么让视屏铺满屏幕呢?
方法是利用object-fit属性,它就和background-size一样,能够使元素平铺。代码示例如下:
//对应background-size: 100% 100%;
.fill { object-fit: fill; }
//对应background-size: contain;
.contain { object-fit: contain; }
//对应background-size: cover;
.cover { object-fit: cover; }
//用户不大
.none { object-fit: none; }
.scale-down { object-fit: scale-down; }
值得一提的是:
- object-fit属性不仅可用于video元素,其实它可以用于任何元素。
- object-fit属性不兼容ie,其它都兼容的很好,移动端可以放心使用。
内联视屏的控制
内联元素的播放可以通过timeupdate 和 ended这两个事件来控制,它的进度则可以用currentTime来获取或者控制。示例如下:
video.addEventListener('timeupdate', function (e) {
console.log(video.currentTime) // 当前播放的进度
})
video.addEventListener('ended', function (e) {
// 播放结束时触发
})
H5内联视频的更多相关文章
- H5内联视频总结
概述 之前写过h5内联视频,总结了一下当时做微信视频类h5的心得,随着工作中越来越多的接触h5,我有了更多的心得与经验,记下来供以后开发时参考,相信对其他人也有用. 内联视频的播放 内联视频需要用户主 ...
- H5 内联 SVG
HTML5 内联 SVG HTML5 画布 HTML5 画布 vs SVG HTML5 支持内联 SVG. 什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics ...
- 微信小程序内联h5页面,实现分享
在小程序内直联h5的页面(pages/webview/webview.js),该页面为<web-view>的容器,使用<web-view>组件 <web-view wx: ...
- 第48天学习打卡(HTML 行内元素和块元素 列表 表格 视频和音频 页面结构分析 iframe内联框架 表单语法 )
行内元素和块元素 块元素 无论内容多少,该元素独占一行 (p.h1-h6) 行内元素 内容撑开宽度,左右都是行内元素的可以排在一行 (a.strong.em...) 列表 什么是列表 ...
- CSS3与页面布局学习总结(二)——Box Model、边距折叠、内联与块标签、CSSReset
一.盒子模型(Box Model) 盒子模型也有人称为框模型,HTML中的多数元素都会在浏览器中生成一个矩形的区域,每个区域包含四个组成部分,从外向内依次是:外边距(Margin).边框(Border ...
- 学习笔记——关于HTML(含HTML5)的块级元素和行级(内联)元素总结
1.首先我们要知道什么是块级元素和行级(内联)元素? 块级(block)元素的特点: ①总是在新行上开始: ②高度,行高以及外边距和内边距都可控制: ③宽度缺省是它的容器的100%,除非设定一个宽度: ...
- 关于HTML(含HTML5)的块级元素和行级(内联)元素总结
1.首先我们要知道什么是块级元素和行级(内联)元素? 块级(block)元素的特点: ①总是在新行上开始: ②高度,行高以及外边距和内边距都可控制: ③宽度缺省是它的容器的100%,除非设定一个宽度: ...
- Css中的两个重要概念:块状元素和内联元素
一.display:block display:block就是将元素显示为块级元素,一般是其他元素的容器,可容纳内联元素和其他块状元素,块状元素排斥其他元素与其位于同一行,宽度(width)高度(he ...
- web兼容学习分析笔记--块级、内联、内联块级元素
一.块级.内联.内联块级元素 (1)块级元素:block **独占一行 **可设置width,height,margin,padding **内部可包含块级或内联元素 (3)内联(行内)元素:inli ...
随机推荐
- 【392】Python 列表解析
参考: Python3 数据结构 | 菜鸟教程 列表推导式 列表推导式提供了从序列创建列表的简单途径.通常应用程序将一些操作应用于某个序列的每个元素,用其获得的结果作为生成新列表的元素,或者根据确定的 ...
- 一些值得收藏的MySQL知识链接
https://yq.aliyun.com/articles/5533(死锁分析的很好的一篇文章) http://hedengcheng.com/?spm=5176.100239.blogcont55 ...
- 初学JSON和AJAX心得透过解惑去学习
虽然复制代码再改参数,也能正常运作.但是看懂里面语法,就可以客制成适合你自己程序.例如录制Excel巨集,会有一些赘句,这时候整合就是很重要工作. [大纲] 时间分配 AJAX Markdown教学及 ...
- asp.net文件/大文件上传需要配置的项目整理
HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求. 最可能的原因: •Web 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值. 可尝 ...
- AS3中的单件(Singleton)模式
单件(singleton)模式在c#中是最容易实现的模式,其主要用意就在于限制使用者用new来创建多个实例.但在as3中,构造函数必须是public的(语法本身要求的),而且也不能在构造函数中抛出异常 ...
- python 常用模块(一): os模块,序列化模块(json模块 pickle模块 )
1.os模块 2.序列化模块:(1)json模块 和 pickle模块 一.os模块 os.path.abspath: (1)把路径中不符合规范的/改成操作系统默认的格式 import os path ...
- 字符串的排列(python)
题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 输入描述: 输 ...
- vue获取后台图片验证码,并点击刷新验证码
<--url为需要访问的接口地址--> <span style="display: inline-block;width: 130px;height: 53px;borde ...
- Balanced Numbers (数位dp+三进制)
SPOJ - BALNUM 题意: Balanced Numbers:数位上的偶数出现奇数次,数位上的奇数出现偶数次(比如2334, 2出现1次,4出现1次,3出现两次,所以2334是 Balance ...
- Retrofit 2.0基于OKHttp更高效更快的网络框架 以及自定义转换器
时间关系,本文就 Retrofit 2.0的简单使用 做讲解 至于原理以后有空再去分析 项目全面.简单.易懂 地址: 关于Retrofit 2.0的简单使用如下: https://gitee.c ...