Primefaces / jsf媒体标记在Chrome浏览器中播放WebM文件

时间:2017-05-23 00:37:58

标签: jsf primefaces

我想知道使用PrimeFaces标记播放.webm媒体文件需要什么类型的设置。 我的代码如下所示:

当我尝试在Microsoft Internet Explorer中打开页面时,此功能正常,但我无法在Google Chrome中看到该视频。 我正在寻找一种使用不涉及插件的PrimeFaces嵌入视频的方法。

我的代码如下所示:

<p:media style="margin: auto; display: block" id="part1Video" 
rendered="true" player="windows" width="600" height="400" 
value="C:\...\Part1_Intro_(new).webm"/>

1 个答案:

答案 0 :(得分:0)

我希望你的意思是文件在服务器上,因为我不知道服务器需要将客户端自己的计算机中存在的视频播放到客户端本身。

无论如何,你可以尝试制作一个servlet来传输你的webm

@WebServlet(name = "WebmViewer", urlPatterns = {"/WebmViewer"})
public class WebmViewer extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            String path = request.getParameter("path");
            Path p = Paths.get(path);
            byte[] webmbytes = Files.readAllBytes(p);
            response.setContentType("video/webm");
            response.getOutputStream().write(webmbytes);
            response.getOutputStream().flush();
            response.getOutputStream().close();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}

网址就像

http://localhost:8080/WebApp/WebmViewer?path=F:\java\mp3\Loop.webm

然后使用quicktime播放

<p:media value="WebmViewer?path=F:\java\mp3\Loop.webm" player="quicktime"/>