video标签在安卓手机内置浏览器上的播放问题

news2024/11/28 16:36:51

道阻且长,行而不辍,未来可期

问题:

在手机内置浏览上,虽然没有给video标签设置controls,但在内置浏览器上,就是会显示。
而且,video一旦自动播放,video的层级就会提升到最前,想设置一个盒子覆盖在上面都做不到,给前端造成了很大的困扰。

看了很多相关问题的解决方法,直到看到把video的src设置为blob(视频流)安卓手机的内置浏览器因为认不出数据格式,而不再劫持video标签的渲染。直觉是个好方法,开始动手。

解决demo(react):

import axios from 'axios';
import demoMP4 from '../assets/demo.mp4';

export function getURL(){
 return new Promise(function(resolve, reject){
    axios({
        method:'get',
        url:demoMP4,
        responseType: 'blob',//axios的post方法中responseType的默认值是“json”,改为“blob”即可。
        type: 'video/mp4'
      }).then(res=>{
        console.log(res,'@_@')
        let blob = new Blob([res.data]);//使用Blob类型的数据创建一个Blob类型的对象
        let url = window.URL.createObjectURL(blob);//将blob对象处理成url
        console.log(url,'url');//blob:http://localhost:3002/0e7424b0-c40b-4ae5-a0d6-74f6e60xxxxx
        resolve(url);
      }).catch(error=>{
        reject(error);
      })
 })
}

请添加图片描述

 console.log(url,'url');
 //blob:http://localhost:3002/0e7424b0-c40b-4ae5-a0d6-74f6e60xxxxx
 useEffect(()=>{
    getURL().then(url=>{
      setVideoData(url);
    }).catch(err=>{
      console.log(err);
    });
  },[])

 {/* poster 属性规定视频下载时显示的图像,或者在用户点击播放按钮前显示的图像。 */}
  <video
       width="100%"  
       autoplay 
       loop 
       muted
       playsinline
       src={videoData}
       x5-video-player-type="h5"
       poster={firstPage}
    >
 </video>            

下载blob类型的文件:
在回调函数中可以这样写

.then(res=>{
        console.log(res.data,'@_@')
      
        let blob = new Blob([res.data]);
        let url = window.URL.createObjectURL(blob);
        console.log(url,'url');//blob:http://localhost:3002/0e7424b0-c40b-4ae5-a0d6-74f6e60xxxxx
        //创建一个a标签,利用a标签的download属性,将mp4下载到本地
        let a = document.createElement("a");
        a.href = url;
        a.download = "xxx.mp4";    // 这里的文件名可以去res的header中取
        a.click();
        // 释放url对象
        window.URL.revokeObjectURL(url);
      })

video设置了autoplay在PC端不能自动播放,移动端也不行

pc端解决办法:
给video标签添加 muted

移动端解决办法:

  useEffect(()=>{
    const videos =document.getElementsByTagName("video");
    videos[0].play();
  },[])

参考文档:https://blog.csdn.net/SuiFengDieWu/article/details/125625900
参考文档:https://blog.csdn.net/littlebearGreat/article/details/103287596
参考文档:https://blog.csdn.net/weixin_42178670/article/details/116235454

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/952065.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

22道Mysql面试真题和答案

本专栏记录Java后端开发相关的面试题&#xff0c;欢迎大家阅读专栏的其他文章。 1.请介绍下联合索引的最左匹配原则 建立一个联合索引&#xff08;a&#xff0c;b&#xff0c;c&#xff09;&#xff0c;相当于建立多个索引&#xff08;a&#xff09;&#xff08;a&#xff0c;…

亚马逊宣布弃用低代码,Honeycode 服务即将停止。

AWS 宣布终止低代码服务 Honeycode。新客户不能注册或升级账户计划&#xff0c;现有客户的应用程序将在 2024 年 2 月 29 日前继续运行。在 2023 年 7 月 31 日之后&#xff0c;用户将不再需要支付 Honeycode 使用费。 Honeycode 是一项于2020年6月推出的完全托管服务&#xf…

C语言网络编程实现组播(多播)

1、组播IP划分 224.0.0.0&#xff5e;224.0.0.255 为预留的组播地址&#xff08;永久组地址&#xff09;&#xff0c;地址224.0.0.0保留不做分配&#xff0c;其它地址供路由协议使用&#xff1b; 224.0.1.0&#xff5e;224.0.1.255 是公用组播地址&#xff0c;可以用于Inter…

春秋云镜 CVE-2018-2894

春秋云镜 CVE-2018-2894 Weblogic 任意文件上传漏洞 靶标介绍 Oracle Fusion Middleware 的 Oracle WebLogic Server 组件中的漏洞&#xff08;子组件&#xff1a;WLS - Web Services&#xff09;。受影响的受支持版本包括 12.1.3.0、12.2.1.2 和 12.2.1.3。易于利用的漏洞允…

怎样做一个知识库网站

经济和信息技术的蓬勃发展&#xff0c;知识资源成为了企业非常重要的无形资产。 当前&#xff0c;企业的核心竞争力不仅取决于硬件设备、财务实力、资源多寡、人员数量等生产因素&#xff0c;更加取决于企业对于知识的掌握、运用、传承和创新。 制作企业知识库&#xff0c;传…

静态路由(详细理解+实例精讲)

系列文章目录 华为数通学习&#xff08;6&#xff09; 前言 一&#xff0c;静态路由 二&#xff0c;静态路由配置 三&#xff0c;缺省路由 四&#xff0c;缺省路由应用场景 总结 前言 随着华为公司的不断发展&#xff0c;数据通信这门技术也越来越重要&#xff0c;很多人…

js数据类型?如何判断js数据类型?

在JavaScript中&#xff0c;有以下几种数据类型&#xff1a; 基本数据类型&#xff08;Primitive Data Types&#xff09;&#xff1a; String&#xff08;字符串&#xff09;&#xff1a;表示文本数据&#xff0c;使用引号&#xff08;单引号或双引号&#xff09;括起来。Numb…

Android自定义view流程

Android自定义view流程,主要目的是总结实现过程中的思路以及一些需要注意的地方。 首先&#xff0c;我们先来看一张效果图&#xff1a; 实现逻辑 重新指定View宽高绘制外圆圆弧背景及进度绘制中圆圆弧背景及进度绘制内圆圆弧背景及进度 知识点 onMeasure 用于测量View的大小…

读SQL学习指南(第3版)笔记08_视图和索引

1. 精心设计的应用程序通常会在保持实现细节私有的同时公开公有接口&#xff0c;以便未来在不影响最终用户的情况下修改设计 2. 视图 2.1. 不同于数据表&#xff0c;视图并不涉及数据存储&#xff0c;不用担心视图会填满你的磁盘空间 2.2. 一种数据查询机制 2.3. 从用户的视…

基于swing的中国象棋java小游戏jsp源代码Mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、主要功能 可以实现双人下棋&#xff0c;可以悔棋&#xff0c;可…

R语言其他相关函数(各函数解析含实例,可供查询)

目录 一.函数相关 1.函数定义&#xff1a;function 2.调用文件:source 3. Call 4.Recall 5.browser 6.debug和undebug 7.trace 8.traceback 9.options 10.missing 11.nargs 12.stop 13.指定退出时执行的表达式 14.expression和eval 15.system.time 16. invisi…

Springboot+mybatis-plus+dynamic-datasource 切换数据源失败问题总结

Springbootmybatis-plusdynamic-datasourceDruid 多数据源 切换数据源失败总结 文章目录 Springbootmybatis-plusdynamic-datasourceDruid 多数据源 切换数据源失败总结0.前言1. dynamic-datasource 切换数据源失败场景总结1. spring-batch整合情况下切换数据源异常解决办法&am…

Matlab图像处理-图像缩放

基本概念 图像缩放是指将给定的图像在x轴方向按比例缩放a倍&#xff0c;在y轴方向按比例缩放b倍&#xff0c;从而获得一幅新的图像。 如果ab&#xff0c;即在x轴方向和y轴方向缩放的比率相同&#xff0c;则称这样的比例缩放为图像的全比例缩放。 如果a≠b&#xff0c;图像比…

Spring: HiddenHttpMethodFilter的用法及原理

作用&#xff1a;将html表单提交的post请求转换为put请求或delete请求发给接口。 html不支持put和delete. 一、web.xml中配置过滤器 <filter><filter-name>HiddenHttpMethodFilter</filter-name><filter-class>org.springframework.web.filter.HiddenH…

认识SQL sever

目录 一、数据库的概念 1.1数据库的基本概念 1.2对数据库的了解 二、数据库的分类 2.1关系型数据库&#xff08;RDBMS&#xff09;&#xff1a; 2.2非关系型数据库&#xff08;NoSQL&#xff09;&#xff1a; 2.3混合数据库&#xff1a; 2.4数据仓库&#xff1a; 2.5嵌…

二叉树中的堆

堆的概念和结构 大堆&#xff1a; 树中的任何一个父亲都大于等于孩子 小堆&#xff1a; 树中的任何一个父亲都小于等于孩子 堆在逻辑上是二叉树来存储的&#xff0c;就是在我们的想象中他是按二叉树来存储的&#xff0c;但是在实际上&#xff0c;它是以数组的形式来存储的&…

软考A计划-网络工程师-复习背熟-路由器与交换配置和网络安全

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

移动端如何适配不同的屏幕尺寸

在移动端开发中&#xff0c;适配不同的屏幕尺寸是一个重要的考虑因素。以下是一些常用的方法来实现移动端的屏幕适配&#xff1a; 使用响应式布局&#xff1a;使用CSS媒体查询和弹性布局来根据屏幕尺寸调整页面布局和元素大小。通过设置百分比、em或rem单位来实现元素的相对大小…

ICCV 2023 | 港中文MMLab: 多帧光流估计模型VideoFlow,首次实现亚像素级别误差

本文提出了一个多帧光流估计模型 VideoFlow&#xff0c;旨在充分挖掘视频中的时序信息和运动规律&#xff0c;避免当前主流方法只以两帧图片作为输入而面临的信息瓶颈&#xff0c;显著提升了光流估计的性能。 在公开的 Sintel Bechmark 上&#xff0c;VideoFlow 在 Clean 和 Fi…

过期订单关闭

由于Redis具有过期监听的功能&#xff0c;于是就有人拿它来实现过期订单关闭&#xff0c;但是这个方案并不完美。今天来聊聊11种实现订单定时关闭的方案&#xff0c;总有一种适合你&#xff01; 在电商、支付等系统中&#xff0c;一般都是先创建订单&#xff08;支付单&#x…