video标签特殊属性详解

video标签 定义和用法: <video> 标签HTML 5 的新标签,定义视频,比如电影片段或其他视频流 常用属性: 属性 值 说明 id 任意 规定元素的唯一 id src URL 要播放的视频的 URL preload auto/meta/none 规定在页面加载时是否预加载视频,如果使用 “autoplay”,则忽略该属性 controls 如果出现该属性,则向用户显示控件,比如播放按钮 poster URL 规定视频下载时显示的图像,或者在用户点击播放按钮前显示的 阅读详情
AI摘要

这篇博客详细探讨了移动端视频播放的各种属性和配置,包括`playsinline`、`x5-video-player-type`等,如何处理iOS和Android平台的全屏、控制栏隐藏以及自动播放等问题。同时,提到了在不同设备上实现内联播放和隐藏播放控件的技巧,以及应对视频加载黑屏的解决方案。

<video
  id="video" 
  src="video.mp4" 
  controls = "true"
  poster="images.jpg" /*视频封面*/
  preload="auto" 
  webkit-playsinline="true" /*这个属性是ios 10中设置可以
                     让视频在小窗内播放,也就是不是全屏播放*/  
  playsinline="true"  /*IOS微信浏览器支持小窗内播放*/ 
  x-webkit-airplay="allow" 
  x5-video-player-type="h5"  /*启用H5播放器,是wechat安卓版特性*/
  x5-video-player-fullscreen="true" /*全屏设置,
                     设置为 true 是防止横屏*/
  x5-video-orientation="portraint" //播放器支付的方向, landscape横屏,portraint竖屏,默认值为竖屏
  style="object-fit:fill">
</video>
  • src: 视频的地址
  • controls: 加上这个属性,Gecko 会提供用户控制,允许用户控制视频的播放,包括音量,跨帧,暂停/恢复播放。
  • poster: 属性规定视频下载时显示的图像,或者在用户点击播放按钮前显示的图像。如果未设置该属性,则使用视频的第一帧来代替。
  • preload: 属性规定在页面加载后载入视频。
  • webkit-playsinline和playsinline: 视频播放时局域播放,不脱离文档流 。但是这个属性比较特别, 需要嵌入网页的APP比如WeChat中UIwebview 的allowsInlineMediaPlayback = YES webview.allowsInlineMediaPlayback = YES,才能生效。换句话说,如果APP不设置,你页面中加了这标签也无效,这也就是为什么安卓手机WeChat 播放视频总是全屏,因为APP不支持playsinline,而ISO的WeChat却支持。 这里就要补充下,如果是想做全屏直播或者全屏H5体验的用户,IOS需要设置删除 webkit-playsinline 标签,因为你设置 false 是不支持的 ,安卓则不需要,因为默认全屏。但这时候全屏是有播放控件的,无论你有没有设置control。 做直播的可能用得着播放控件,但是全屏H5是不需要的,那么去除全屏播放时候的控件,需要以下设置:同层播放
  • x-webkit-airplay="allow" : 这个属性应该是使此视频支持ios的AirPlay功能。使用AirPlay可以直接从使用iOS的设备上的不同位置播放视频、音乐还有照片文件,也就是说通过AirPlay功能可以实现影音文件的无线播放,当然前提是播放的终端设备也要支持相应的功能
  • x5-video-player-type: 启用同层H5播放器,就是在视频全屏的时候,div可以呈现在视频层上,也是WeChat安卓版特有的属性。同层播放别名也叫做沉浸式播放,播放的时候看似全屏,但是已经除去了control和微信的导航栏,只留下"X"和"<"两键。目前的同层播放器只在Android(包括微信)上生效,暂时不支持iOS。至于为什么同层播放只对安卓开放,是因为安卓不能像ISO一样局域播放,默认的全屏会使得一些界面操作被阻拦,如果是全屏H5还好,但是做直播的话,诸如弹幕那样的功能就无法实现了,所以这时候同层播放的概念就解决了这个问题。不过在测试的过程中发现,不同版本的IOS和安卓效果略有不同
  • x5-video-orientation: 声明播放器支持的方向,可选值landscape 横屏, portraint竖屏。默认值portraint。无论是直播还是全屏H5一般都是竖屏播放,但是这个属性需要x5-video-player-type开启H5模式
  • x5­-video­-player­-fullscreen:全屏设置。它又两个属性值,ture和false,true支持全屏播放,false不支持全屏播放。其实,IOS 微信浏览器是Chrome的内核,相关的属性都支持,也是为什么X5同层播放不支持的原因。安卓微信浏览器是X5内核,一些属性标签比如playsinline就不支持,所以始终全屏。

全屏处理

  • ios ios加playsinline属性,之前只带webkit前缀的在ios10以后,会吊起系统自带播放器,两个属性都加上基本ios端都可以保证内敛到浏览器webview里面了。如果仍有个别版本的ios会吊起播放器,还可以引用一个库iphone-inline-video(具体用法很简单看它github,这里不介绍了,只需加js一句话,css加点),github地址加上playsinline webkit-playsinline这两个属性和这个库基本可以保证ios端没有问题了(不过亲测,只加这两个属性不引入库好像也是ok的,至今没有在ios端微信没有出现问题,如果你要兼容uc或者qq的浏览器建议带上这个库).
  • android x5-video-player-type="h5"属性,腾讯x5内核系的android微信和手Q内置浏览器用的浏览器webview的内核,使用这个属性在微信中视频会有不同的表现,会呈现全屏状态,貌似播放控件剥去了,至少加了这个属性后视频上层可以有其他dom元素出现了(非腾讯白名单机制的一种处理措施)。
  • <video id="video" src="xx.mp4" playsinline webkit-playsinline></video>

    自动播放

    android始终不能自动播放,不多说。值得一提的是经测现在ios10后版本的safari和微信都不让视频自动播放了(顺带音频也不能自动播放了),但微信提供了一个事件WeixinJSBridgeReady,在微信嵌入webview全局的这个事件触发后,视频仍可以自动播放,这个应该是现在在ios端微信的视频自动播放的比较靠谱的方式,其他如手q或者其他浏览器,建议就引导用户出发触屏的行为操作出发比较好。

    播放控制

    对于video或者audio等媒体元素,有一些方法,常用的有play(),pause();也有一些事件,如'loadstart','canplay','canplaythrough','ended','timeupdate'.....等等。 在移动端有一些坑需要注意,不要轻易使用媒体元素的除'ended','timeupdate'以外event事件,在不同的机子上可能有不同的情况产生,例如:ios下监听'canplay'和'canplaythrough'(是否已缓冲了足够的数据可以流畅播放),当加载时是不会触发的,即使preload="auto"也没用,但在pc的chrome调试器下和android下,是会在加载阶段就触发。ios需要播放后才会触发。总之就是现在的视频标准还不尽完善,有很多坑要注意,要使用前最好自己亲测一遍 就是当第一次播放视频的时候ios端,如果网络慢,视频从开始播到能展现画面会有短暂的黑屏(处理视频源数据的时间),为了避免这个黑屏,可以在视频上加个div浮层(可以一个假的视频第一帧),然后用timeupdate方法监听,视屏播放及有画面的时候再移除浮层
    video.addEventListener('timeupdate',function (){
        //当视频的currentTime大于0.1时表示黑屏时间已过,已有视频画面,可以移除浮层(.pagestart的div元素)
        if ( !video.isPlayed && this.currentTime>0.1 ){
            $('.pagestart').fadeOut(500);
            video.isPlayed = !0;
        }
    })
    document.addEventListener("WeixinJSBridgeReady", function (){ 
        video.play();
        video.pause();
    }, false)

 

隐藏播放控件

据说腾讯的android团队的x5内核团队放开了视频播放的限制,视频不一定调用它们那个备受诟病的视频播放器了,x5-video-player-type="h5"属性这个属性好像就有点那个意思,虽然体验还是有点...(导航栏也会清理)但至少播放器控件没有了,上层可以浮div或者其他元素了,这个还是值得一提。还有一点值得说的是,带播放器控件的隐藏.

<div class="videobox" ontouchmove="return false;">
    <video id="mainvideo" src="test.mp4" x5-video-player-type="h5" playsinline webkit-playsinline></video>
</div>

比如这个videobox在android下隐藏,只用display:none貌似还是不行的,但加个z-index:-1,设置成-1就可以达到隐藏播放器控件的目的了。

去掉video的controls中的下载按钮

video::-internal-media-controls-download-button {
    display:none;
}

video::-webkit-media-controls-enclosure {
    overflow:hidden;
}

video::-webkit-media-controls-panel {
    width: calc(100% + 30px); 
}

 

video标签属性总结 导读:video标签在H5页面上是常用的播放视频的标签,有很多新属性,在这里总结一下,作video的日常熟悉和平时使用时的翻阅查询之用。视频格式有.mp4 .webm .ogg这几种格式的, 在浏览器上支持的最好的是.mp4所以推荐使用的视频播放源。 阅读详情

相关推荐

解决H5安卓自带浏览器video层级问题

一、问题 video标签在安卓自带浏览器下会默认处于最高层级,由于不是x5内核,所以不能采取x5-video-player-type等方法。

https://github.com/Bot80926 5898

视频标签 video的一些特殊属性详解

视频标签 video的一些特殊属性详解 HTML5标签video在PC上显示很简单,就一个标签加资源,很少需要关心其它属性。但放到移动设备上,video的标准,Android和iOS有很多区别,另外还有很多各家浏览器特定的属性,本文详细讲了video在移动端的实践。 video的属性 <video id="video" src="video.mp4" controls = "true" poster="images.jpg" /*视频封面*/ preload="auto"

m0_46349605的博客 3799

移动端H5视频播放避坑指南:如何让UC/夸克浏览器不劫持你的video标签

本文深入探讨移动端H5视频播放中UC/夸克浏览器劫持video标签的问题,提供全面的解决方案。通过分析浏览器内核差异,详细介绍playsinline、x5-video-player-type等关键属性的配置方法,并结合JavaScript实现高级控制技巧,帮助开发者有效避免视频播放被强制转为悬浮窗模式。

weixin_30733003的博客 677

移动端H5页面开发坑点指南

前言 在平时的H5移动端开发时,我们难免会遇到各种各样的坑点,这篇文章就带着大家来看看怎么解决,文章较长,建议收藏方便以后查阅! 前方高能! canvas在retina屏模糊 只需要将画笔根据像素比缩放即可 run(canvasEl) { const canvas = canvasEl; const ctx = canvas.getContext('2d'); const...

weixin_45189747的博客 1580

别再被Video标签坑了!微信H5视频播放的5个实战技巧

本文深入解析微信H5开发中Video标签的常见问题,提供5个实战技巧解决全屏播放、自动播放兼容性、视频封面优化等痛点。特别针对微信内置浏览器的特殊环境,分享iOS与安卓平台的差异化解决方案,帮助开发者提升移动端视频播放体验。

weixin_29013129的博客 345

「HTML和CSS入门指南」video 标签详解

video 标签是一个重要的标签,它可以帮助您在网页中添加视频,从而使您的内容更具吸引力、生动和易于理解。在使用 video 标签时,请注意选择正确的属性、嵌套元素、文件大小及其对页面加载时间的影响,并测试和调整您的代码以确保最佳兼容性。

a451319296的博客 1万+

前端 视频标签 video的一些特殊属性详解

HTML5标签video在PC上显示很简单,就一个标签加资源,很少需要关心其它属性。但放到移动设备上,video的标准,Android和iOS有很多区别,另外还有很多各家浏览器特定的属性,本文详细讲了video在移动端的实践。 原文:视频H5 video标签最佳实践随着 4G 的普遍以及 WiFi 的广泛使用,手机上的网速已经足够稳定和高速,以视频为主的 HTML5 也越来越普遍了,相比帧动画,视频的表现更加丰富,这里介绍一些实践经验。 video的属性 <video id="video".

web_ding的博客 4937

RML2016.10a (CNN、LSTM、CNN-LSTM、CNN-LSTM-Multi-head-attention, TensorFlow)

RML2016.10a (CNN、LSTM、CNN-LSTM、CNN-LSTM-Multi-head-attention, TensorFlow) 包含所有数据和代码,支持一键运行(jupyter)

qq_40999533的博客 1483

视频标签 video的一些特殊属性

HTML5标签video在PC上显示很简单,就一个标签加资源,很少需要关心其它属性。但放到移动设备上,video的标准,Android和iOS有很多区别,另外还有很多各家浏览器特定的属性,本文详细讲了video在移动端的实践。 原文:视频H5 video标签最佳实践随着 4G 的普遍以及 WiFi 的广泛使用,手机上的网速已经足够稳定和高速,以视频为主的 HTML5 也越来越普遍了,相比帧动画,视频的表现更加丰富,这里介绍一些实践经验。 video的属性 <video id="video".

良_123的专栏 1223

TP-LINK电信定制摄像头刷机教程:解锁官方功能与固件升级

固件是嵌入式设备的操作系统,控制着硬件的基础功能。其工作原理是通过更新或替换存储在设备非易失性存储器中的程序代码,从而改变设备的行为和功能。这项技术的核心价值在于赋予用户对设备的完全控制权,能够解除厂商或运营商的软件限制,实现功能自定义、性能优化和安全更新。在智能家居、网络设备和物联网领域,固件升级与刷机是常见的工程实践,用于修复漏洞、增加新特性或适配不同平台。本文聚焦于利用TFTP恢复模式这一通用网络设备维护机制,针对TP-LINK电信定制版摄像头,提供一套完整的刷机方案,将设备刷入官方通用版固件,以解除

weixin_34205826的博客 490

STM32H743玩转以太网:不用FreeRTOS,手把手搞定LAN8742和DHCP(附MPU配置避坑指南)

本文详细介绍了在STM32H743裸机环境下实现以太网通信的完整方案,重点讲解了LAN8742 PHY芯片的配置和DHCP自动获取IP的实现。通过CubeMX配置、内存布局优化和MPU设置,避开了H7系列常见的Cache陷阱,提供了无操作系统环境下的高效网络通信解决方案。

weixin_42709044的博客 201

html5视频媒体标签video的使用方法及完整参数说明详解

video是HTML5的一个视频媒体标签,其作用是在网页中嵌入指定的视频,video标签的代码结构及参数如下。 HTML代码结构: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 你的浏览器不支持 video 标签. 参数说明: controls - 显示标准的 HTML5 视频/音频播放器控制条、控制按钮。 autoplay - 让文件自动播放。 loop - 让文件循环播放。 preload - 属性是用来缓存大体积文件的。它有三个可选值:“none” 不缓存

Zola的博客 5893

如何构建智能聊天系统

聊天分为听、思考、读,简单的通过ASR、LLM、TTS三类模型的组合可以实现,最近openai推出支持多模态的GPT-4o模型,可以把三个模型真正融合成在一起。现在市面上的模型百花齐放,各有所长。要实现可落地的方案,需要结合业务,验证模型效果,同时也要考虑方案的可行性,有些模型在国内能用,有些在国内不能用。

xsgnzb的专栏 2107

H5中新增的标签,video和audio以及一些表单的特殊属性的用法

H5新特性 HTML5增加一些新的标签,表单,以及视频音频的相关用法,对前端程序员来说是非常友好的。那么聊聊这些新增特性的微重点用法以及特性吧。 新增的标签: 在之前咱们开发用的最多的就是盒子模型,不管是头部,正文,还是尾部模块咱们用的都是div,给他设置不同的类名或者id名字进行设计布局的,这样布局其实对浏览器来说是不友好的,因此H5新增了header(头部),nav(导航),artical(正文),section(正文中的部分模块),aside(侧边栏)以及footer(网页最下方)部分,这种方式布局,

egg_er的博客 669

从拧螺丝到精密装配:三菱伺服电机扭矩控制在工业自动化中的实战解析

本文深入解析三菱伺服电机扭矩控制在工业自动化中的实战应用,重点介绍MR-J4系列伺服系统的高精度扭矩响应技术。从螺丝紧固到精密装配,详细讲解扭矩控制模式的选择、硬件配置、参数设置及典型故障排查方案,帮助工程师提升生产效率和产品质量。

weixin_29186249的博客 470

一个非常简单的变分量子分类器 (VQC)

​ 在之前的帖子(这里和这里)中,我已经开始谈论 QML,为什么以及如何学习,从现在开始,我将开始分享我的研究和发现,到目前为止,这些都是非常基本的。​

gongdiwudu的专栏 6208

【兼容性记录】video标签在 IOS 和 安卓中的问题

业务需求背景:由于业务中涉及到有视频播放的内容,所以就使用了video标签去做,但是video标签在ios 设备和安卓设备中的默认行为不一致,故记录下解决方法(折中办法)。

fans_x的博客 3093

【云原生技术】helm中Chart.yaml、values.yaml、_helpers.tpl 各自的写法与作用

Chart.yaml、values.yaml、_helpers.tpl 各自的写法与作用 在一个标准的 Helm Chart 中,通常会包含以下关键文件: - **Chart.yaml** - **values.yaml** - **templates/`_helpers.tpl`** - 以及若干模板文件(`deployment.yaml`、`service.yaml` 等) 下面分别介绍这几个文件的作用、常见字段及其含义。

weixin_46453070的博客 751

HTML5标签属性(含新增标签)

目录 1、HTML5新增的标签: 传统 div方式布局 使用 HTML5新增的标签实现布局 2. 最常见的HTML标签属性: 分割视窗 贴图/音乐 表格语法 字体效果 区断标记 连结格式 贴图/音乐 表示颜色的有三种方式; 1,背景属性 2,文字属性: 3,留白属性: align属性 列表 1,无序列表又称符号列表 2,有序列表 3,定义列表 连接和图像 name连接名称 文字的排版 tr元素 td元素 input元素 语法格式: image 图片域..

m0_48982503的博客 1839

图神经网络实战(25)——基于A3T-GCN预测交通流量

本节重点讨论了使用 TGNN 进行交通预测任务。首先,我们介绍了 PeMS-M 数据集,并将其从表格数据转换为具有时间信号的静态图数据集。在实践中,我们根据输入距离矩阵创建了加权邻接矩阵,并将交通速度转换为时间序列。最后,我们构建了 A3T-GCN 模型,这是一个专为交通预测设计的 T-GNN 模型,并将结果与两个基线模型进行了比较,验证了模型的预测结果。

盼小辉丶的博客 8570

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

video 标签在微信浏览器的问题解决方法

在ios和安卓手机上播放时,遇到不少问题: 在微信浏览器内播放时,视频会自动全屏 如果每个视频都有一张自定义的图片作为封面,在显示视频的同时,如果没有给这个视频设置高度,视频的容器在安卓手机上会被视频的封面撑大到变形 解决办法: <video class="video-source" width="100%"    height="240px" /*如果有封面,请设置高度*/ controls /*这个属性规定浏览器为该视频提供播放控件*/ style="

Jana Jing的分享 1918

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

html不支持元素video,HTML的video元素

video元素是HTML5规范新增加的元素,用于支持在网页文档中播放视频。在HTML5规范出现之前,标准网页文档是不支持视频播放的。大多数网页文档中的视频是通过插件(例如Flash)来播放的,所有的浏览器都必须安装插件才能播放网页中的视频,在没安装插件的浏览器上不能播放网页中的视频,这显然会给用户带来很大的困惑。为了解决在网页中播放视频的问题,HTML5规范增加了video元素,网页设计者可以通过...

weixin_33169898的博客 855

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

H5.video在微信中禁止全屏播放视频和直播流

这段时间在做一个直播项目,有直播需求,也有视频播放需求,要求能在微信中以半屏的方式播放,另外半屏可以做一些操作,还有些组件需要悬浮在视频上方。网上各种扒拉,各种实验,以求在微信中实现不全屏就能播放和自动播放,最终还是用了单纯的video标签。自动播放到目前还是没找到完美的解决方法。 非全屏播放视频 <video loop autoPlay ...

ccp0119的博客 2401

小强的HTML5移动开发之路(14)——Video标签详解

在前面的小强的HTML5移动开发之路(5)——制作一个漂亮的视频播放器中制作了一个非常好用的播放器,有的朋友对其中的原理还不是很了解,这一篇文章将在前一篇的基础上深入剖析<video>标签的使用。 一、使用技巧 在html5中可以使用<audio>或者<video>标签播放html5媒体,使用方式如下: [html]view ...

weixin_34144848的博客 140

【html】Video元素的属性介绍和用法

video元素的出现,使得网页文档可以播放音视频,弥补了本无法播放视频的缺陷,以前使用其他插件播放(例如flash)。它也可以替代canvas,作为WebRTC数据的载体。

qq_2511276124的博客 7253
上一篇: Video自动播放兼容PC端,移动端,最佳方案(IOS、安卓、微信端)
下一篇: 前端 视频标签 video的一些特殊属性详解
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时光机上敲代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值