controller层将本地视频转换成二进制数据流,前端页面显示播放
原文地址:https://blog.csdn.net/weixin_42548604/article/details/83827193
我做了一些改进,实现了播放前端指定的视频
写在controller层的代码:
//resource是从前端接收到的数据
@RequestMapping(value = "/stream",method = RequestMethod.GET)
@ResponseBody
public void getStreamData(HttpServletResponse response,Resource resource) {
System.out.println(resource);
File file=new File(System.getProperty("user.dir")+resource.getUrl());
ServletOutputStream out=null;
try {
FileInputStream instream=new FileInputStream(file);
byte[] b=new byte[1024];
int length=0;
BufferedInputStream buf=new BufferedInputStream(instream);
out=response.getOutputStream();
BufferedOutputStream bot=new BufferedOutputStream(out);
while((length=buf.read(b))!=-1) {
bot.write(b,0, b.length);
}
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("出错啦");
e.printStackTrace();
}
}
前端页面(src填的是后台的运行的网址)
<div style="width: 800px;margin: 0 auto;border: #475669 ;border-radius: 4px;">
<video src="http://localhost:8080/stream"+"?url="+this.resource.url;" width="100%" ></video>
</div>