Мне нужно передавать с сервера видео файлы на android приложение, но таким образом, чтобы они подгружались во время просмотра и я мог держать их в кэше. Пробовал сделать что-то со стримингом с сервера этих видео, но не разобрался, как их тогда держать в кэше и какие должны быть заголовки у Response Entity в этом случае, чтобы стриминг видео мог корректно отображаться в приложении. При таком контроллере плеер не может воспроизвести видео.
Вот сам контроллер:
@GetMapping(value = "video/test/")
public ResponseEntity<InputStreamResource> getVideoByLink() throws IOException {
File initialFile = new File("videoFile.mp4");
InputStream targetStream = new FileInputStream(initialFile);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.valueOf("video/mp4"));
headers.set("Accept-Ranges", "bytes");
headers.set("Expires", "0");
headers.set("Cache-Control", "no-cache, no-store");
headers.set("Connection", "keep-alive");
headers.set("Content-Transfer-Encoding", "binary");
headers.set("Charset","UTF-8");
return new ResponseEntity<>(new InputStreamResource(targetStream), headers, HttpStatus.OK);
}