通过servletvideo java查看flv视频

通过servletvideo java查看flv视频,java,javascript,jsf,Java,Javascript,Jsf,当我试图从webcontent目录中的文件在jwplayer中查看视频时,它会显示出来,我可以播放它,但当我从数据库中读取相同的文件并通过servlet用flv响应时,它不会显示出来。有人能帮我吗 在Html文件中: <script type='text/javascript' src='/ThoughRecord18-8/jwplayer.js'></script> <script type='text/javascript'> jw

当我试图从webcontent目录中的文件在jwplayer中查看视频时,它会显示出来,我可以播放它,但当我从数据库中读取相同的文件并通过servlet用flv响应时,它不会显示出来。有人能帮我吗

在Html文件中:

    <script type='text/javascript' src='/ThoughRecord18-8/jwplayer.js'></script>


    <script type='text/javascript'>
  jwplayer('mediaspace').setup({
    'flashplayer': '/ThoughRecord18-8/player.swf',
    'file': '/ThoughRecord18-8/videoss?videoId=1',
    'controlbar': 'bottom',
    'width': '470',
    'height': '320'
  });
</script>


这不是java的问题,JW播放器只支持HTTP Psuedo流和RTMP流。它们都是各自的协议——你不能只在它上面传输纯内容。查看此页面:,以及此页面:,了解JW Player如何进行流媒体处理的信息


如果您不想让用户等待获取所有内容,则需要使用其中一种流机制。如果这不是一个问题,你可以考虑改变你的servlet,在你的WebCype目录中写入某个文件,然后重定向到文件或其他东西。但是我不认为像那样写入响应流会起作用。

如果您绕过JWPlayer直接从浏览器中的位置栏调用servlet,会发生什么?@Mike-我不太确定您在Html文件中移动到了哪里:为了有意义-显然也是servlet代码,然而,它之前是明确的HTML。实际上,当我编辑它时,它是问题的最后一行,没有意义,所以我将它上移了一个街区,但你是对的,这仍然不对。当我从浏览器的位置栏调用它时,它要求我打开或保存flv视频,但问题是如何在JWPlayer中播放flv视频,flv文件与数据库中的文件相同,当我在html文件中输入以下文件“:”/ThoughRecord18-8/file.flv”时它工作,但当我调用servlet文件“:”/ThoughRecord18-8/videoss?videoId=1”时,它不工作,这个问题有解决方法吗
String videoId = request.getParameter("videoId");
        if (videoId != null || !videoId.equals("")) {
            VideoDao dao = new VideoDao();
            Video video = dao.getVideo(videoId);
            Blob blob = video.getVideoBlob();
            byte[] buf = new byte[1024];
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            InputStream in = null;
            int len;
            try {
                len = (int) blob.length();
                byte[] rb = new byte[len];
                InputStream readImg = blob.getBinaryStream();
                int index = readImg.read(rb, 0, len);
            response.reset();
            response.setBufferSize(DEFAULT_BUFFER_SIZE);
            response.setContentType("video/x-flv");
            response.setContentLength(rb.length);
             response.setHeader("Content-Disposition", "inline; filename=file.flv");
            byte[] content = new byte[DEFAULT_BUFFER_SIZE];
            BufferedInputStream is = new BufferedInputStream(
                    new ByteArrayInputStream(rb));
            OutputStream os = response.getOutputStream();
            while (is.read(content) != -1) {
                os.write(content);
            }
            is.close();
            os.close();**