我在Sping Boot 中构建了一个虚拟的视频流应用程序,我注意到我不能跳到另一帧或视频中的某个时间。
public byte[] getVideo() throws IOException {
byte[] bytes = new byte[(int) file.length()];
FileInputStream inputStream = new FileInputStream(file);
inputStream.read(bytes);
return bytes;
}
这是我的视频控制器返回的
return ResponseEntity.status(HttpStatus.OK)
.header("Content-Type","video/mp4")
.header("Content-length",String.valueOf(streamingService.file.length()))
.body(streamingService.getVideo());
注意我没有使用任何前端
1条答案
按热度按时间wwtsj6pe1#
因此,经过一些实验,我发现浏览器(Chrome)对某个字节范围发出了另一个GET请求,而我的
getVideo()
方法编写得不够好,无法接受该字节范围并返回所需的字节范围。重写我的
VideoStreamingService,
后,Chrome的问题解决了。下面是我为
getVideo()
重写的代码:readRangeByte()
方法,以便正确读取数据:和我的控制器类代码:
在@Andreas的建议下,代码在两种浏览器上都运行得很好