我有一个控制器:
@GetMapping(value = "videos/{id}/{name}")
@ResponseBody
public final ResponseEntity<InputStreamResource>
retrieveResource(@PathVariable(value = "id") final String id,
@PathVariable(value = "name") final String name) throws Exception {
File initialFile = new File(id + name);
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");
return new ResponseEntity<>(new InputStreamResource(targetStream), headers, HttpStatus.OK);
}
当我使用浏览器访问时http://localhost:7080/视频/2/3
我看到了视频,但当我把它放在一个html页面时却看不到:
<div class="media-box foto">
<video width="320" height="240" controls>
<video url="http://localhost:7080/videos/2/3" type="video/mp4">
</video>
</div>
1条答案
按热度按时间vojdkbi01#
你的java代码看起来不错。这个问题与你的html有关。
请尝试:
除非有多个视频格式,否则通常不会显示视频格式。例如:
可以包含其他属性,如
autoplay
或者muted
. 请参阅mdn的相关文档。