所以我设计了一个应用程序,它有一个 reactjs 前端,从 Spring Boot 后端提供内容。我有一个提供视频的休息控制器。它在大约 10 分钟内运行良好,然后我的浏览器中出现“由于网络错误导致视频播放中止”。我在这里做错了吗?这应该在另一个线程或异步或其他线程上完成吗?我想这一切都是在春天完成的。
@RestController
@CrossOrigin
public class VideoDirectoryController {
@Autowired
private ConfigManager<LibraryConfig> librariesConf;
/**
*
* @param libraryName
* @param fileName
* @return
*/
@GetMapping(value = "/getVideo", produces = "video/mp4")
public byte[] getVideo(@RequestParam(value = "library") String libraryName,
@RequestParam(value = "fileName") String fileName) {
Library lib = librariesConf.getConfig().getLibraries().get(libraryName.toLowerCase());
Video video = lib.getVideoFiles().get(fileName);
lib.getRecentlyViewed().add(video);
librariesConf.getConfig().getLibraries().keySet().forEach((libr) -> System.out.println("LIBR: :" + libr));
try (FileInputStream out = new FileInputStream(lib.getFileDirectory(fileName))) {
return IOUtils.toByteArray(out);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
正如我所说,这可以正常工作约 10 分钟。如果我使用 :3000(前端)和直接点击获取视频的 URL(:8080/getVideo),它都会这样做
感谢任何帮助我以前从未在 Spring Boot 中使用多媒体。
白衣非少年
相关分类