我想知道我们应该如何正确地将数据流传输到客户端。 我有一个Spring Boot应用程序,并且有一个类似以下的控制器:
@GetMapping("video-stream/{videoId}") public ResponseEntity<InputStreamResource> video(@PathVariable String videoId)
throws IOException {
byte[] data = .......
try (ByteArrayInputStream bais = new ByteArrayInputStream(data)) {
final HttpHeaders headers = new HttpHeaders();
headers.add("Content-disposition", "attachment; filename=\"" + url + "\"");
return ResponseEntity.ok().headers(headers).contentLength(data.length)
.contentType(MediaType.parseMediaType("application/octet-stream"))
.body(new InputStreamResource(bais));
}
} }
我的前端包含一个简单的视频标签:
<video width="300" [src] = "camSrc" controls autoplay="autoplay">
Your browser does not support HTML5 video.
</video>
这基本上是将整个视频下载到客户端,而不是流式传输。 我是否应该提供一个可以为客户端提供少量数据的端点? 对于很小的视频,这是可以的,但对于更大的视频则不是。
任何样品将不胜感激。