[RESOLVIDO] Vraptor com JWPlayer

Estou usando Vraptor e tenho uma aplicação que faz upload de vídeos pro servidor, no caso o meu computador.
Salvo apenas o nome do vídeo do banco e ao acessar o vídeo vou buscar o vídeo no numa pasta do meu computador.

<embed  
    width="350"  
    height="230"  
    src="<c:url value='/jwplayer/tocador.swf' />"  
    allowscriptaccess="always" allowfullscreen="true"  
    flashvars="file=<c:url value='/videos/${video.id}/video' />"  
/>
@Get("/videos/{id}/video")  
    public Download video( Long id ) {  
        Video video = videoDao.load(id);  
        String variavel = System.getenv("VARIAVEL_AMBIENTE");  
        char separator = java.io.File.separatorChar;  
        String videoFileName = video.getVideoFileName();  
        String path = variavel + separator + "videos" + separator + videoFileName;  
        File file = new File(path);  
        FileDownload fileDownload = new FileDownload(file, "video/x-flv", video.getId().toString() + ".flv");  
  
        return fileDownload;  
    }

Acontece que o JWPlayer não executa o vídeo, alguém poderia ajudar? Não sei se é forma certa de se fazer.

se vc aponta diretamente pra esse cara funciona? tipo se vc colocar o vídeo dentro de WebContent e colocar o caminho dele

Sim, se eu colocar o vídeo dentro do WebContent funciona, aí eu só coloco o path dele no jwPlayer mas dessa forma aí não funciona.

tenta ver pelo firebug ou algo do tipo quais são os headers que o servidor manda quando acessa o vídeo diretamente…
possívelmente vc tem que mandar os mesmos headers

Cara, percebi uma coisa, com o vídeo dentro do WebContent, no momento que eu clico pra executar o vídeo o request é feito e ele começa a executar.
Mas buscando o vídeo de uma pasta de fora não faz isso, pois o request é feito ao chamar a URL e o java me retorna o arquivo. O mais interessante é que
realmente o arquivo é retornado, eu consigo fazer até download dele se quiser. Sobre os headers pelo que vi são os mesmos.
Mas alguma dica??? hehehe

se vc faz o request na mão pra url do video que passa pelo controller ele toca? quer dizer, ele faz o download do video corretamente?

Deixa eu ver se entendi a sua pergunta, se eu acesso a url direto ele vai lá no controller e me retorna o vídeo e faz download e quando executo no computador dá certo.
Agora no jwplayer não executa de jeito nenhum… :smiley:

faz o seguinte:

coloca dois jwplayers na página, um apontando pro vídeo direto no arquivo e um apontando pro mesmo vídeo passando pelo controller.

abre a aba Network (ou Rede) do Firebug e veja as requisições pros dois vídeos e veja os cabeçalhos de requisição e resposta.

veja o que tem de diferente neles.

ah… só uma coisa também: mude a url do vídeo do controller pra terminar com .mp4 (ou a extensão do vídeo), isso é importante pro jwplayer.

Cara, realmente só faltava o .extensaoDoVideo (.mp4, .flv) no final da url.
Agora ficou assim @Get("/videos/{id}/video.flv") e deu certo.
Vlw mesmo :smiley: