Я хотел бы знать, как мы должны правильно передавать данные клиенту.У меня есть приложение 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>
Это в основном загружает все видео вклиент вместо потоковой передачи.Должен ли я на самом деле предоставить конечную точку, которая предоставляет клиенту небольшие порции данных?Для очень маленьких видео это нормально, но для чего-то большего это не так.
Любой образец был бы очень признателен.