springBoot视频在线播放,支持快进,分片播放 |
您所在的位置:网站首页 › 大喵前端视频在线观看 › springBoot视频在线播放,支持快进,分片播放 |
1、主要是通过ResourceHttpRequestHandler类来实现,ResourceHttpRequestHandler本身支持分片加载,前端在请求头中携带Range: bytes = 0-5001,就可以从后台自动截取对应大小视频内容。 第一步,先自定义实现一个ResourceHttpRequestHandler。代码如下: package com.tec666.moviebar.config; import org.springframework.core.io.FileSystemResource; import org.springframework.core.io.Resource; import org.springframework.stereotype.Component; import org.springframework.web.servlet.resource.ResourceHttpRequestHandler; import javax.servlet.http.HttpServletRequest; /** * @author longge93 */ @Component public class NonStaticResourceHttpRequestHandler extends ResourceHttpRequestHandler { public final static String ATTR_FILE = "NON-STATIC-FILE"; @Override protected Resource getResource(HttpServletRequest request) { String filePath = (String) request.getAttribute(ATTR_FILE); return new FileSystemResource(filePath); } }第二步,在视频播放controller中,把本地文件路径传入ResourceHttpRequestHandler。代码如下: @Controller @RequestMapping(value = "/api/baseResource") public class BaseSourceApiController { @Autowired private NonStaticResourceHttpRequestHandler nonStaticResourceHttpRequestHandler; private final Logger logger = LoggerFactory.getLogger(this.getClass()); @RequestMapping(value = "/video", method = RequestMethod.GET) public void video( HttpServletRequest request, HttpServletResponse response ) { try { String path = "D:/abc.mp4"; File file = new File(path); if (file.exists()) { request.setAttribute(NonStaticResourceHttpRequestHandler.ATTR_FILE, path); nonStaticResourceHttpRequestHandler.handleRequest(request, response); } else { response.setStatus(HttpServletResponse.SC_NOT_FOUND); response.setCharacterEncoding(StandardCharsets.UTF_8.toString()); } } catch (Exception e) { } } }
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |