苹果safari浏览器播放不了video标签视频

news2024/11/24 2:45:26

今天遇到了个神奇的问题,视频文件在pc端和安卓手机上播放都没问题,但是在ios上就是播放不了,大概代码如下:

前端代码:

    <video id="video" width="350" height="500" controls>
        <source src="/getFileVideo" type='video/mp4'>
    </video>

后端代码:

    /**
     * description 获取视频文件
     *
     * @author yanzy
     * @date 2022/12/16 17:37
     */
    @GetMapping("/getFileVideo")
    public void getFileVideo(HttpServletResponse response) throws IOException {
        File videoFile = new File("E://test.mp4");
        FileInputStream inputStream = new FileInputStream(videoFile);
        ServletOutputStream out = response.getOutputStream();
        int byteRead = 0;
        byte[] buffer = new byte[1024];
        while ((byteRead = inputStream.read(buffer)) != -1) {
            out.write(buffer, 0, byteRead);
        }
        out.flush();
        inputStream.close();
    }

PC端没任何问题:

在这里插入图片描述

IOS端播放不了:

在这里插入图片描述

在网上搜索了很多办法,有加前端参数配置的:

    <video id="video" width="350" height="500" controls
       muted autoplay preload loop
       x5-video-player-fullscreen="true"
       x5-playsinline
       playsinline
       webkit-playsinline
       poster="test.jpg">
        <source src="/getFileVideo" type='video/mp4'>
    </video>

有改后端多次发送请求,分段获取数据流的:

在这里插入图片描述

经过多次测试最终找到了问题,视频文件在ios上需要两个参数,一个是视频文件的类型,一个是文件的大小长度:

        response.setContentType("video/mp4");
        response.setHeader("Content-length", String.valueOf(videoFile.length()));

修改后ios浏览器就可以正常播放了:

在这里插入图片描述

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

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

相关文章

PMP和软考应该考哪个?

1、信息系统项目管理师和PMP都是国家或国际级别的考试&#xff0c;证书具有通用性。但从考试难度上来说&#xff0c;PMP相对更容易&#xff0c;因为只有一场考试&#xff0c;且题型相对单一。而信息系统项目管理师则需要通过三科考试&#xff0c;包括综合知识、案例分析、论文等…

Hybird App技术解析:混合应用热更新原理

原生应用与混合应用的开发发布 1、原生应用 我们都知道传统原生 APP &#xff0c;整个开发成本非常高、发布周期也比较长。对于需要频繁迭代业务内容的企业来说&#xff0c;无论是更新功能模块还是修复有缺陷的版本&#xff0c;都需要重新测试、重新发版、重新提交第三方应用…

金融领域:产业链知识图谱包括上市公司、行业和产品共3类实体,构建并形成了一个节点10w+,关系边16w的十万级别产业链图谱

项目设计集合&#xff08;人工智能方向&#xff09;&#xff1a;助力新人快速实战掌握技能、自主完成项目设计升级&#xff0c;提升自身的硬实力&#xff08;不仅限NLP、知识图谱、计算机视觉等领域&#xff09;&#xff1a;汇总有意义的项目设计集合&#xff0c;助力新人快速实…

智能井盖:科技赋能城市脚下安全

在智能化飞速发展的今天&#xff0c;智能井盖作为城市基础设施的一部分&#xff0c;正逐渐走进人们的视野。它利用现代科技手段&#xff0c;实现了对城市井盖的实时监控、及时响应和高效管理&#xff0c;为城市管理、市民出行等方面带来了诸多便利。 城市中井盖数量庞大&#x…

ES6基础知识六:你是怎么理解ES6中 Promise的?使用场景?

一、介绍 Promise&#xff0c;译为承诺&#xff0c;是异步编程的一种解决方案&#xff0c;比传统的解决方案&#xff08;回调函数&#xff09;更加合理和更加强大 在以往我们如果处理多层异步操作&#xff0c;我们往往会像下面那样编写我们的代码 doSomething(function(resu…

Springboot+vue 集成openAI智能助手源码分享(适配手机端)

- 演示站&#xff1a;http://tlzcf.vip:8679/ 源码地址&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1a_sGUGW1Q4n3VKbRqlpHrw?pwdtl2u 提取码&#xff1a;tl2u在这里插入代码片

JVM - 运行时数据区域

文章目录 程序计数器栈堆方法区知识延申 -- 字符串常量池 程序计数器 并发情况下&#xff0c;会发生线程之间的上下文切换&#xff0c;当 线程1 的CPU时间片用完后&#xff0c;需要程序计数器记录 线程1 的下一条JVM指令的地址&#xff0c;等下一次 线程1 继续运行的时&#x…

【FPGA】Verilog:模块化组合逻辑电路设计 | 半加器 | 全加器 | 串行加法器 | 子模块 | 主模块

前言&#xff1a;本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例&#xff1a;加法器 ​ 功能特性&#xff1a; 采用 Xilinx Artix-7 XC7A35T芯片 配置方式&#xff1a;USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度 存储器&#xff1a;2Mbi…

重新成为合伙人背后,阿里需要蒋凡

监制 | 何玺 排版 | 叶媛 7月21日&#xff0c;阿里巴巴集团发布2023财年年报。据财报信息显示&#xff0c;阿里国际数字商业集团CEO蒋凡和菜鸟集团CEO万霖已成为阿里合伙人。 01 蒋凡重新成为阿里合伙人 该财报数据显示&#xff0c;截至3月31日的2023财年&#xff0c;阿里巴…

JAVA面试总结-Redis篇章(一)——缓存穿透

JAVA面试总结-Redis篇章&#xff08;一&#xff09; Redis缓存穿透解决方案一:缓存空数据&#xff0c;查询返回的数据为空&#xff0c;仍把这个空结果进行缓存![在这里插入图片描述](https://img-blog.csdnimg.cn/157c22930bff43cda2d325978a5ae05b.png)解决方案二&#xff1a;…

UE4/5C++多线程插件制作(十六、Coroutines协程封装)

我们要对协程继续封装制作: 协程是一种计算机程序组件,它允许在某个位置暂停执行,然后在稍后的时间点恢复执行。与传统的函数调用不同,协程可以被多次调用并且能够保留其内部状态,从而允许程序在执行到一定点时暂停,执行其他任务,然后再返回协程继续执行。 在传统的线…

机器学习深度学习——softmax回归(上)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——线性回归的简洁实现 &#x1f4da;订阅专栏&#xff1a;机器学习&&深度学习 希望文章对你们有所…

CSS动画@animationend

CSS动画 是什么&#xff1f; CSS 中的动画类似于 flash 中的逐帧动画&#xff0c;表现细腻并且非常灵活&#xff0c;使用 CSS 中的动画可以取代许多网页中的动态图像、Flash 动画或者 JavaScript 实现的特殊效果。 这里感兴趣的可以去了解针 动画是什么 常用的css动画属性 :…

C国演义 [第十一章]

第十一章 有效的字母异位词题目理解代码 两数之和题目理解(暴力篇)代码题目理解(哈希篇)代码 有效的字母异位词 力扣链接 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同&#xff0c;…

华为盘古大模型:能源领域的颠覆性突破

近日&#xff0c;华为盘古大模型在能源领域横空出世&#xff0c;引发了广泛关注和期待。作为一项具有颠覆性影响的技术创新&#xff0c;华为盘古大模型在能源行业中展现出巨大的潜力和前景。其优质的计算能力和智能优化算法&#xff0c;将为能源产业带来翻天覆地的变革。 盘古大…

linxu部署项目(详细教程)

首先我们需要一台虚拟机或者云服务器&#xff08;二选一即可&#xff09; 我们需要在安装jdk与tomcat 安装jdk&#xff0c;去官网下载对应的tar.gz压缩包就行tomcat同理 这里&#xff0c;我们已将下载好的JDK源码包 jdk-8u131-linux-x64.tar.gz 拷贝至 /usr/local/java/ 目录。…

《零基础入门学习Python》第066讲:GUI的终极选择:Tkinter3

今天我们一起来学习三个组件&#xff1a;Checkbutton、Radiobutton 和 LabelFrame。 同样&#xff0c;我们还是通过案例来讲解。 一、Checkbutton Checkbutton&#xff08;多选框&#xff09;。大家都知道什么叫做“翻牌子”&#xff0c;今天的第一个例子就是来写一个翻牌子…

如何清除Linux密钥环

如何清除Linux密钥环 Linux系统密钥环是什么如何清除密钥环方法一方法二 说明 最近使用Linux系统电脑&#xff0c;启动VScode总是弹出解锁密钥环的弹窗&#xff0c;单击取消后还会反复弹出&#xff0c;需要取消三次&#xff0c;但是如果没有及时取消会导致电脑卡机&#xff0c;…

Appium+python自动化(二十二)- 控件坐标获取(超详解)

简介 有些小伙伴或者是童鞋可能会好奇会问上一篇中的那个monkey脚本里的坐标点是如何获取的&#xff0c;不是自己随便蒙的猜的&#xff0c;或者是自己用目光或者是尺子量出来的吧&#xff0c;答案当然是&#xff1a;NO。获取控件坐标点的方式这里宏哥给小伙伴们分享和讲解三种方…

安全第一天

1. 编码 1.1 ASCLL编码 ASCII 是基于拉丁字母的一套电脑编码系统&#xff0c;主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准&#xff0c;并等同于国际标准ISO/IEC 646。 1.2 URL编码 URL&#xff1a;&#xff08;统一资源定位器、定位地址&#xff0c;俗称网页…