苹果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浏览器就可以正常播放了:

相关推荐
Eumenides_max几秒前
【股票数据API接口32】如何获取融资融券历史走势股数据之Python、Java等多种主流语言实例代码演示通过股票数据接口获取数据
java·开发语言·python·股票api接口·股票数据接口
王海萧10 分钟前
Glide加载gif遇到的几个坑
android·java·glide
kerwin_code16 分钟前
SpringCloudAlibaba 服务保护 Sentinel 项目集成实践
java·sentinel
gentle_ice23 分钟前
leetcode——搜索二维矩阵II(java)
java·算法·leetcode·矩阵
程序员徐师兄30 分钟前
Java实战项目-基于 springboot 的校园选课小程序(附源码,部署,文档)
java·spring boot·小程序·校园选课·校园选课小程序·选课小程序
TANGLONG2221 小时前
【C++】类与对象初级应用篇:打造自定义日期类与日期计算器(2w5k字长文附源码)
java·c语言·开发语言·c++·python·面试·跳槽
等一场春雨2 小时前
Java设计模式 二十六 工厂模式 + 单例模式
java·单例模式·设计模式
拿我格子衫来2 小时前
图形编辑器基于Paper.js教程22:在图形矢量编辑器中,实现两个元素的差集,交集,并集,切割
前端·javascript·图像处理·编辑器·图形渲染
纪元A梦2 小时前
Java设计模式:结构型模式→桥接模式
java·设计模式·桥接模式