在线视频播放

作者: 吝啬言语 | 来源:发表于2017-12-27 17:28 被阅读0次

    最近项目中用到了在线播放视频的功能,总结一下。
    基本思路是,服务端取出文件字节流,输出到前端, 网页用video标签播放。
    1、前端video标签,src指定请求的url和文件名:

    <video style="width: 800px;height: 600px;" controls preload>
         <source src="url?vpath=文件服务端路径"></source>
    </video>
    

    2、服务端响应请求,用servlet或其他都可以。

    public void previewLocal(HttpServletRequest request, HttpServletResponse response) throws IOException {
            // 得到文件路径,取文件
            String filePath = "D:\\VID.mp4";
            // String filePath = request.getParameter("vpath");
            File file = new File(filePath);
            if (file.exists()) {
                String diskfilename = file.getName();
                // 取头参数,浏览器信息等,如果需要的话
                String range = request.getHeader("range");
                String browser = request.getHeader("User-Agent");
                logger.info("range:" + range + ",browser:" + browser);
                // 设置响应头信息
                response.setContentType("video/mp4");
                response.setHeader("Content-Disposition", "attachment; filename=\"" + diskfilename + "\"");
                response.setContentLength((int) file.length());
                // 前边的range是请求的数据范围,一般"0-",表示从0开始,之后的所有内容
                // Content-Range是返回的数据范围,需要快进的话,需要指定有效的范围,不指定不能快进,超出范围也不能快进
                response.setHeader("Content-Range", range + (file.length() - 1));
                response.setHeader("Accept-Ranges", "bytes");
                // 裤子脱完了,开始蹲下干正事,完了记得擦破屁股
                InputStream is = new FileInputStream(file);
                OutputStream os = response.getOutputStream();
                IOUtils.copyBytes(is, os, file.length(), false);
                // 擦屁股
                is.close();
                os.close();
            }
        }
    

    3、现在的项目好多都赶时髦,弄个HDFS存文件,这样的话,只需要稍加修改。( 前提是HDFS存取文件各种操作都搞定了)

    //检查文件存在
    if(fs.exits( filePath )){}
    //取文件长度:
    len = fs.getFileStatus(filePath).getLen();
    //得到输入流:
    InputStream inputStream = fs.open( filePath );
    

    4、基本功能实现了,完善工作肯定还是有的,遇到问题解决问题吧。

    相关文章

      网友评论

        本文标题:在线视频播放

        本文链接:https://www.haomeiwen.com/subject/cwnugxtx.html