因为我这Java后端返回的是文件流,不是视频地址,所以要给header设置Content-Range和Accept-Ranges,接口代码如下:
@GetMapping("/fileStream")
public void fileStream(String filename, HttpServletResponse response) throws Exception {
File file = new File(uploadFolder+"/" + filename);
if (!file.exists()) {
log.error(filename + "文件不存在");
return;
}
InputStream in = new FileInputStream(file);
// 创建字节数组,数组大小为视频文件大小
byte[] data = new byte[in.available()];
in.read(data);
response.setContentType("video/mp4");
response.addHeader("Content-Disposition", "attachment;fileName=" + filename);
response.setContentLength(data.length);
response.setHeader("Content-Range", "" + Integer.valueOf(data.length - 1));
response.setHeader("Accept-Ranges", "bytes");
OutputStream os = response.getOutputStream();
// 将视频文件的字节数组写入 response 中
os.write(data);
os.flush();
os.close();
in.close();
}
希望能帮助到你!