热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HTML5杂谈Video元素的poster属性

1、poster属性poster是用于设置视频的海报,也就是视频没有播放的情况下的首图。对应的属性值为图片的URL如果没有设置video的poster那么在第一帧可用

1、poster 属性

poster是用于设置视频的海报,也就是视频没有播放的情况下的首图。对应的属性值为图片的URL

如果没有设置video的poster 那么在第一帧可用之前(可以简单理解为视频加载和解析完成之前)不会在video元素上显示任何图像(webkit浏览器显示为video的背景颜色,IE系列会多一个loading),之后会以视频第一帧作为海报

<video id&#61;"video1" poster&#61;"img/500m.jpg" width&#61;"425" height&#61;"240" controls><source type&#61;"video/mp4" src&#61;"mp4/500m.mp4">
video><video id&#61;"video2" controls width&#61;"425" height&#61;"240" ><source type&#61;"video/mp4" src&#61;"mp4/500m.mp4">
video>

显示效果为

第一帧可用前

image

第一帧可用后

image

本地视频处理是比较简单的&#xff0c;如果使用第三方产商的视频就比较蛋疼。而在视频添加中使用第三方视频比自己上传视频到服务器较为实用方便&#xff0c;以使用腾讯视频为例&#xff0c;直接复制腾讯视频提供的通用代码粘贴到自己HTML代码里面就能播放。

先来看看腾讯提供的视频通用代码

image


<iframe frameborder&#61;"0" width&#61;"640" height&#61;"498"
src&#61;"https://v.qq.com/iframe/player.html?vid&#61;g0566otc4fy&tiny&#61;0&auto&#61;0"
allowfullscreen>

iframe>

这段代码能够获取到&#xff1a;

  • width 视频的宽度
  • height 视频高度
  • tiny 是否最小化&#xff08;没什么卵用&#xff09;
  • auto 是否自动播放

除此之外别无其他。

嵌入这段代码后查看页面的代码&#xff0c;可以看到iframe里面的视频用的也是video&#xff0c;也有一个海报图&#xff0c;但是能不能通过传参数来改变视频的海报图呢&#xff1f;对于我们引用者来说无从得知&#xff08;讲道理你引用的是别人的视频&#xff0c;产商是不会提供接口给你改视频的海报&#xff09;。也无法在iframe外部通过脚本改里面的元素&#xff0c;只能尝试在iframe外部伪造一个海报

1&#xff09;、首先让视频自动播放

<iframe class&#61;"player" frameborder&#61;"0" src&#61;"https://v.qq.com/iframe/player.html?vid&#61;g0566otc4fy&tiny&#61;0" >iframe>

2)、添加海报和播放图标并叠在视频区域上面&#xff0c;未播放时视频隐藏&#xff08;不添加iframe节点&#xff09;

<div class&#61;"videoBox"><img class&#61;"poster" src&#61;"img/500m.jpg"><img class&#61;"playIcon" src&#61;"img/playIcon.svg">
div>

.videoBox{width: 300px;height: 150px;position: absolute;top:100px;left:40px;-webkit-transform: rotateZ(0deg);
}
.videoBox .player{display: none;position: absolute;width: 300px;height: 150px;top: 0px;left: 0px;z-index: 3;
}.videoBox .poster{width: 100%;height: 100%;position: absolute;z-index: 1;
}.videoBox .playIcon {width: 23%;opacity: .8;position: absolute;z-index: 2;position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);
}

3)、点击播放图标时显示并播放视频&#xff0c;隐藏海报

"text/Javascript">$(function(){var videoBox &#61; $(&#39;.videoBox&#39;);var play &#61; $(&#39;.playIcon&#39;);var player &#61; $(&#39;&#39;);play.on(&#39;click&#39;,function() {videoBox.append(player);player.on(&#39;load&#39;,function(){player.show();})});});
script>

做到这一步就能在PC端达到以假乱真的状态。

在PC端是没有问题的主流浏览器都能兼容&#xff0c;但是在移动端上有个兼容的问题&#xff0c;就是无法自动播放

即使我们去掉了通用代码中的参数auto&#xff0c;在手机端上视频也是无法自动播放的&#xff0c;具体原因跟音频在手机端无法自动播放的原因一样。

当我们点击我们自己创建的图层上的播放图标&#xff0c;海报隐藏显示视频播放器&#xff0c;此时视频还不能播放&#xff0c;需要再一次点击iframe里面的视频才能播放&#xff0c;而且前后有两张海报。这样就会显得我们自定义添加的海报很多余&#xff0c;同时还增加了播放的复杂度。

同样引用别人的视频我们是无法在前端更改脚本做到自动播放的&#xff0c;但是自己本地的视频在微信可以自动播放&#xff0c;跟微信上播放音乐一样调用微信jssdk处理即可

image
image

转:https://juejin.im/post/59fd261d6fb9a0450e757be5



推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文整理了常用的CSS属性及用法,包括背景属性、边框属性、尺寸属性、可伸缩框属性、字体属性和文本属性等,方便开发者查阅和使用。 ... [详细]
  • 今天周六,原则上要休息,但想到下周还有一堆任务,还是先做一部分工作吧,就把之前做的票面设计器改了改,增加了上传图片和更换背景底图的功能。现在打算整理下这个设计器,也算对齐一个总结。不过这属于我们部门的 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
  • Android源码中的Builder模式及其作用
    本文主要解释了什么是Builder模式以及其作用,并结合Android源码来分析Builder模式的实现。Builder模式是将产品的设计、表示和构建进行分离,通过引入建造者角色,简化了构建复杂产品的流程,并且使得产品的构建可以灵活适应变化。使用Builder模式可以解决开发者需要关注产品表示和构建步骤的问题,并且当构建流程发生变化时,无需修改代码即可适配新的构建流程。 ... [详细]
  • 本文整理了Java中org.apache.pig.backend.executionengine.ExecException.<init>()方法的一些代码 ... [详细]
  • 项目需要实现弹幕,网上参考了各种方法,最后觉得transform+transition实现的效果在移动设备上性能最好,在iphone6和红米4上测试,看不到 ... [详细]
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • css div中文字位置_超赞的 CSS 阴影技巧与细节
    本文的题目是CSS阴影技巧与细节。CSS阴影,却不一定是box-shadow与filter:drop-shadow,为啥?因为使用其他属性 ... [详细]
  • 二十二、D3饼图Abstract在前一章中,你已经看到了条形图是如何表示某一类数 ... [详细]
  • Html5第一章
    Html5第一章 ... [详细]
author-avatar
陆寥频
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有