springBoot视频在线播放,支持快进,分片播放

您所在的位置:网站首页 大喵前端视频在线观看 springBoot视频在线播放,支持快进,分片播放

springBoot视频在线播放,支持快进,分片播放

2024-07-11 14:48| 来源: 网络整理| 查看: 265

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