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

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

前端代码:

html 复制代码
    <video id="video" width="350" height="500" controls>
        <source src="/getFileVideo" type='video/mp4'>
    </video>

后端代码:

java 复制代码
    /**
     * 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端播放不了:

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

html 复制代码
    <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上需要两个参数,一个是视频文件的类型,一个是文件的大小长度:

java 复制代码
        response.setContentType("video/mp4");
        response.setHeader("Content-length", String.valueOf(videoFile.length()));

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

相关推荐
一嘴一个橘子2 分钟前
MyBatis‑Plus Service 层常用自带方法
java
菜鸟小前端在线卖艺3 分钟前
因为找不到好用的前端占位图,于是我自己写了个谁都能用的占位图功能
前端·程序员·产品
Z小明3 分钟前
第 1 章 Vite 项目初始化
前端·vue.js
健康平安的活着4 分钟前
java中批量查询+stream返回map提高查询效率
java·windows·python
wear工程师5 分钟前
Spring 循环依赖为什么要三级缓存:两级会把 AOP 代理弄丢
java·spring
IT_陈寒6 分钟前
Redis大KEY删除慢到手抖,这几个方法让我少熬一夜
前端·人工智能·后端
AICoder码农王7 分钟前
depcruise 实战:把架构约定变成可执行的检查
前端
paopaokaka_luck7 分钟前
基于springboot3+vue3+uniapp的河南非遗数字图谱小程序(协同过滤算法、数字图谱展示、ECharts 图形化分析)
java·前端·spring boot·学习·小程序·uni-app·echarts
合橱瑰8 分钟前
Vue3 与 ElementPlus 前端常见错误修复实践
前端·vue.js
PedroQue999 分钟前
v1.4.0:新增 defineUniPage 宏声明页面配置,架构全面重构
前端·vite