html5 video标签全屏

video全屏操作栏自定义样式&&js 指定元素全屏&&视频截图下载 最近遇到的需求就是重新video标签的控制栏的样式,包括进度条、音量、倍速、全屏等样式,在正常状态下,可以将原生样式隐藏掉自定义新的控制栏元素定位上去,但是全屏后样式失效,出现的还是原生的控制栏。只能曲线救国,说白了就是让video的父级全屏,进而让video也屏,控制栏的自定义组件样式定位上就可以了。具体是f12 可以看出,自定义的组件其实还在原先的位置,全屏后的video新增的伪类和样式无法修改,未全屏状态下自定义控制栏的组件样式。全屏后,发现控制栏已经变成原生的样式。 阅读详情
<!doctype  html>
<html>
<head>
<meta charset="utf-8" />
<title>全屏问题</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<meta http-equiv="imagetoolbar" content="no"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<style type="text/css">
*{
    padding: 0px;
    margin: 0px;
}
 
body div.videobox{
    width: 400px;
    height: 320px;
    margin: 100px auto;
    background-color:#000;
}
 
body div.videobox video.video
{
width: 100%;
    height: 100%;
}
 
:-webkit-full-screen {
 
}
 
:-moz-full-screen {
 
}
 
:-ms-fullscreen {
   
}
 
:-o-fullscreen {
   
}
 
:full-screen { 
  
}
 
:fullscreen {
  
}
 
:-webkit-full-screen video {
  width: 100%;
  height: 100%;
}
:-moz-full-screen video{
    width: 100%;
    height: 100%;
}
    </style>
</head>
<body>
  
 
<div id="videobox">
      
    <video controls="controls" preload="preload" id="video" poster="poster.jpg">
      <source src="./movie.ogg" type="video/ogg" />
      <source src="./movie.mp4" type="video/mp4" />
      <source src="./movie.webm" type="video/webm" />
      <object data="./movie.mp4" width="100%" height="100%">
        <embed width="100%" height="100%" src="./movie.swf" />
      </object>
 
    </video>
    <button id="fullScreenBtn">全屏</button>
</div>
  
  
<script type="text/javascript">
  
//反射調用
var invokeFieldOrMethod = function(element, method) 
{
   var usablePrefixMethod;
   ["webkit", "moz", "ms", "o", ""].forEach(function(prefix) {
       if (usablePrefixMethod) return;
       if (prefix === "") {
           // 无前缀,方法首字母小写
           method = method.slice(0,1).toLowerCase() + method.slice(1);   
       }
       var typePrefixMethod = typeof element[prefix + method];
       if (typePrefixMethod + "" !== "undefined") {
           if (typePrefixMethod === "function") {
               usablePrefixMethod = element[prefix + method]();
           } else {
               usablePrefixMethod = element[prefix + method];
           }
       }
   });
    
       return usablePrefixMethod;
};
    
//進入全屏
 function launchFullscreen(element) 
   {
    //此方法不可以在異步任務中執行,否則火狐無法全屏
     if(element.requestFullscreen) {
       element.requestFullscreen();
     } else if(element.mozRequestFullScreen) {
       element.mozRequestFullScreen();
     } else if(element.msRequestFullscreen){ 
       element.msRequestFullscreen();  
     } else if(element.oRequestFullscreen){
        element.oRequestFullscreen();
    }
    else if(element.webkitRequestFullscreen)
     {
       element.webkitRequestFullScreen();
     }else{
      
        var docHtml  = document.documentElement;
        var docBody  = document.body;
        var videobox  = document.getElementById('videobox');
        var  cssText = 'width:100%;height:100%;overflow:hidden;';
        docHtml.style.cssText = cssText;
        docBody.style.cssText = cssText;
        videobox.style.cssText = cssText+';'+'margin:0px;padding:0px;';
        document.IsFullScreen = true;
 
      }
   }
//退出全屏
   function exitFullscreen()
   {
       if (document.exitFullscreen) {
         document.exitFullscreen();
       } else if (document.msExitFullscreen) {
         document.msExitFullscreen();
       } else if (document.mozCancelFullScreen) {
         document.mozCancelFullScreen();
       } else if(document.oRequestFullscreen){
            document.oCancelFullScreen();
        }else if (document.webkitExitFullscreen){
         document.webkitExitFullscreen();
       }else{
        var docHtml  = document.documentElement;
        var docBody  = document.body;
        var videobox  = document.getElementById('videobox');
        docHtml.style.cssText = "";
        docBody.style.cssText = "";
        videobox.style.cssText = "";
        document.IsFullScreen = false;
    }
  }
document.getElementById('fullScreenBtn').addEventListener('click',function(){
    launchFullscreen(document.getElementById('video')); 
    window.setTimeout(function exit(){
//檢查瀏覽器是否處於全屏
if(invokeFieldOrMethod(document,'FullScreen') || invokeFieldOrMethod(document,'IsFullScreen') || document.IsFullScreen)
{
exitFullscreen();
}
   },5*1000);
},false);
 
</script>
</body>
  
</html>
关于html5 video全屏+自定义控制器 最近整了台nas机,准备自己写个视频网站搭建家庭媒体服务。临时记录下h5 video全屏+自定义控制器的实现的方式,之后会针对实现完整的h5 video播放控制写一些介绍和遇到的坑。 video标签中有controls属性,如果controls=“controls” 则会使用浏览器内嵌的控制器,当然这是最省力的,而且实际使用也没什么问题,但对于喜欢从轮子造起的猴子,还是喜欢全部自定义。 简单的说,... 阅读详情

相关推荐

双目视觉三维重构(一)————简介

优快云中关于立三维重构的介绍层出不穷,CNKI中也有各类综述对三维重构进行总结,撰写这篇博客仅作为本人对该类博客、论文的总结学习,加深自身学习的印象、作为学习的笔记。如有错误的地方,欢迎指正。   1、三维重构 1.1、三维重构到底是什么?   首先要了解立体匹配算法,首先要知道立体匹配算法主要具体应用于什么方向。 三维重构又被称为三维重建,百度百科中对它的定义为:指对三维物体建立适合...

qq_39634612的博客 1万+

让div内容在video视频上显示

参考代码 业务场景:在video标签上面添加一个全屏图标 html <div class="s-video-all" > <!--VIDEO视频标签容器 --> <div class="s-video" :id=videoId> <!--把VIDEO视频标签...

Creci的博客 7817

anaconda的conda国内加速镜像源(pytorch 快速安装)

最近清华源不太好使了,所以推荐中科大镜像源,如下 1.还原原始通道 conda config --remove-key channels 2.

qq_41719643的博客 2万+

HTML中 video标签样式铺满全屏

video标签默认不是铺满的,即使手动设置宽高100%也不会生效,所以当需要video铺满div时,需要加上一个css样式

wsdshdhdhd的博客 1万+

无人机飞控技术最详细解读

已剪辑自: https://zhuanlan.zhihu.com/p/64519280[导读]被称作是“飞行器的大脑”的飞控到底是什么?以前,搞无人机的十个人有八个是航空、气动、机械出身,更多考虑的是如何让飞机稳定飞起来、飞得更快、飞得更高。如今,随着芯片、人工智能、大数据技术的发展,无人机开始了智能化、终端化、集群化的趋势,大批自动化、机械电子、信息工程、微电子的专业人材投入到了无人机研发大潮中,几年的时间让无人机从远离人们视野的军事应用飞入了寻常百姓家、让门外汉可以短暂的学习也能稳定可靠的飞行娱乐。不可

qq_41854911的博客 1万+

深度学习中的注意力机制

最近两年,注意力模型(Attention Model)被广泛使用在自然语言处理、图像识别及语音识别等各种不同类型的深度学习任务中,是深度学习技术中最值得关注与深入了解的核心技术之一。本文以机器翻译为例,深入浅出地介绍了深度学习中注意力机制的原理及关键计算机制,同时也抽象出其本质思想,并介绍了注意力模型在图像及语音等领域的典型应用场景。

优快云人工智能 4万+

video标签 铺满div

object-fit是video 元素有一种专用样式:(video/img) object-fit 指定视频或者图片显示方式 fill: "填充" 默认值将视频拉伸填满父元素 contain "包含" 保持视频原有比例,父元素空白区域 cover "覆盖" 保持视频原有比...

业余前端的职业经历 4349

nnDetection复现Luna16 附模型

淘论文发现nnDetection框架对肺结节的检测效果挺好,便跑了跑复现了下, 作者诚不欺人,确实挺好, 并附上我依据文档训练的模型。

HeavenWalker 2597

HTML5新标签video在iOS上默认全屏播放

今天做一个app时发现一个问题,应用html5中的video标签加载视频,在android手机上默认播放大小,但是换成iPhone手机上出问题了,默认弹出全屏播放,查找了好多论坛,都没有谈论这个的。然后几经波折终于找到其解决的方法了,在video标签下的source中加入这个-webkit-playsinline=true完美解决全屏问题。  例如:

Enn的数据库 4717

双通道中频信号数字下变频及相位差估计(FPGA)

双通道中频信号数字下变频及相位差估计实验 一、上框图(通俗易懂) 二、实验要求 1、 用点频信号模拟中频信号:中频信号由DDS1和DDS2产生。具体产生方法见第2点。 2、 DDS1和 DDS2:调用IPcore里的数字信号处理中的NCO模块,工作时钟为100MHz,数据率即为100MHz,DDS1和DDS2的频率为:(学号后三位+500)Khz+f0(可设为20MHz);输出为16位;DDS1...

qq_39809425的博客 6941

医学影像AI的幻觉问题与CCD解决方案

医学影像AI在辅助诊断中面临的核心挑战是幻觉现象,即模型生成不符合实际影像的虚假诊断。这种现象源于多模态大语言模型(MLLMs)在视觉-语言对齐上的技术局限,可能导致假阳性或假阴性的临床风险。通过临床对比解码(CCD)框架,结合症状锚定和专家引导的双阶段校准机制,可有效提升模型输出的可靠性。该技术在CheXpert和MIMIC-CXR等标准数据集上验证,显著改善了肺不张、胸腔积液等关键指标的检测准确率。对于医疗AI落地场景,这种即插即用的解决方案既规避了数据隐私合规问题,又降低了基层医院的部署门槛,为AI辅

weixin_36303807的博客 322

防止html5的video标签在iphone中自动全屏

  问题: 当在iphone中打开html5页面中的video视频时,会默认调取系统播放器,全屏播放视频资源。   解决方式: 1. 首先在html5页面的video标签中添加webkit-plays...

u011927449的博客 1451

ENSP之配置静态路由

ENSP之配置静态路由 两台路由器两台PC 拓扑图如下: 配置AR1线路上的两条IP地址 配置AR2线路上的两条IP地址 3.AR2上 配置静态IP 路由 AR1上 配置静态IP 路由 设置两台PC 的IP地址 网关 PC1 PC2 全部配置好了之后 现在测试PC1是否ping 得通PC2 在命令行输入 成功的话如下图 ...

浪友与泪的博客 3545

html5 video 隐藏全屏按钮,如何隐藏HTML5视频标签的全屏按钮?

35I think you can accomplish this by changing the css for the #document fragments, these are DOM1 specs and supported by all browsers, but about the styling, I'm not sure.我认为您可以通过更改#document fragment的...

weixin_31524201的博客 2660

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Android HTML5 Video视频标签自动播放与自动全屏问题解决

为了解决 HTML5Video视频标签自动播放与全屏问题,在网上找了很多相关资料,网上也很多关于此问题解决方法,但几乎都不能解决问题,特别对各大视频网站传回来的html5网页视频自动播放与全屏问题,我是这样解决的: webview.setWebChromeClient(new WebChromeClient() {             public void onShowC

springlim的专栏 2万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

iphone自动拨号是怎么回事 html,如何防止HTML5的video标签在iphone中自动全屏

原标题:如何防止HTML5的video标签在iphone中自动全屏本篇教程探讨了如何防止HTML5的video标签在iphone中自动全屏,希望阅读本篇文章以后大家有所收获,帮助大家HTML5+CSS3从入门到精通 。<问题: 当在iphone中打开html5页面中的video视频时,会默认调取系统播放器,全屏播放视频资源。解决方式: 1. 首先在html5页面的video标签中添加webk...

weixin_29195615的博客 169

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

html-----vedio标签(HTML5新标签VIDEO在IOS上默认全屏播放)

今天做一个app时发现一个问题,应用html5中的video标签加载视频,在Android手机上默认播放大小,但是换成iPhone手机上出问题了,默认弹出全屏播放,查找了好多论坛,都没有谈论这个的。然后几经波折终于找到其解决的方法了,在video标签下的source中加入这个-webkit-playsinline=true完美解决全屏问题。 例如: <video width="100%...

weixin_30892037的博客 429

个人记录:原生webview不支持html5非video标签实现全屏

   个人由于工作需要,最近查找了许多webview视屏播放相关全屏的问题,发现现在原生webview只支持html5 video标签的全屏实现,如果是如腾讯视频这种不是video的时候,原生的webview就无法实现全屏了,很很坑爹,只能用第三webview内核如腾讯x5内核,uc的等等;   也可能是个人技术不行,无法找到一些黑科技来实现吧,不能自己去实现类似第三浏览器自带的内核,而公司项目又...

zhongwenke22的博客 514

html5 video标签实现手机端视频播放全屏显示

<video preload='auto' id='my-video' src='cuplayer.mp4' webkit-playsinline='true' playsinline='true'x-webkit-airplay='true' x5-video-player-type='h5' x5-video-player-fullscreen='true' x5-video-ignore-metadata='true' width='100%' height='100%'&gt.

专注企业级视频应用,企业视频直播、MR虚拟直播、教育培训连麦直播 2989

android中HTML5的Video标签的播放

卓睿A10解决方案中平板方案播放HTML5的Video标签不会自动全屏,但是盒子解决方案会自动全屏,要解决这个问题不难,但是找到问题的出处很难,经过一周多的努力,把HTML5解析到系统层调用研究了一下,主要看了以下一些列文章! http://blog.youkuaiyun.com/horkychen/article/details/7855814 此系列文章有六篇,把HTML5在android上的解析

oQiDian12345的专栏 6533

如何禁止html标签video标签自动全屏播放

如何禁止html标签video标签自动全屏播放 <video loop onClick="javascript:clickVideo();" > <source src="" type="video/webm"> </video> 我的热门文章推荐 多路视频直播用在线云导播切换的效果测试 如何把视频转换生成二维码,扫码直接播放? 有哪些网站上传视频是不会插入广告的? 怎么把视频生成二维码?微信扫二维码就可以观看?不要广告的 常用照片尺寸对照表,.

专注企业级视频应用,企业视频直播、MR虚拟直播、教育培训连麦直播 814

html5 video 不让手机全屏播放,webView h5 video标签设置不全屏播放

最近有个需求在h5页面中加载视频,并在网页内自动播放。但是实际呢视频能直接播放,但是会弹出视频播放器全屏播放。而需求是不全屏自动播放,不符合需求要怎么办呢?只能改改改。。。解决办法:1.h5标签中要设置video标签iOS端webView设置(UIWebView在 iOS 8.0之后可使用WKWebView替代)self.webView.allowsInlineMediaPlayback = YE...

weixin_39535557的博客 1925

iOS wkWebview播放HTML5 video视频 自动全屏问题解决

HTML5使用video播放视频,限制视频的尺寸,但在ios中出现的全屏问题 使用html5 的video标签播放视频的时候,限制视频的尺寸,在android上是没有问题的,但是在ios上发现,视频没有开始播放的时候还是好的,但是一旦播放开是,就会全屏,非常奇怪。 <video id="video" width="100%" poster="images/video.jpg" preload width="100%" controls> <source type="video/

技术前端,忠于热爱 @回忆哆啦没有A梦 7614

video自动全屏html5,HTML5 video进入全屏和退出全屏的实现方法

当我们使用video标签的时候,有时候因为更多的需要,我们要自己自定义控制栏,而进入和退出全屏也是其中的一部分不同的浏览器有不同的实现方法// webkitelement.webkitrequestfullscreen();//进入全屏document.webkitcancelfullscreen();//退出全屏// firefoxelement.mozrequestfullscreen();d...

weixin_42413624的博客 1616
上一篇: JS 获取浏览器窗口大小
下一篇: ionic 进入二级目录以后隐藏底部导航栏(tabs)
勤则弊除
博客等级 码龄12年 140粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值