繁体   English   中英

有没有办法播放带有视频 xhtml 标签的 Java InputStream 或包含带有视频 xhtml 标签的授权 header?

[英]Is there a way to play a Java InputStream with video xhtml tags OR include an authorization header with video xhtml tags?

我一直在尝试将提供图像和视频的 API 与另一个项目集成,并且正在努力使用 xhtml/primefaces 播放视频。 我应该提到,我们之前使用视频标签从本地文件系统提供视频,并且我已经成功地将 API 与其他两个项目集成,没有任何问题。

当我尝试包含视频标签或 p:media 标签时,我无法在此项目上播放视频。 我应该提一下,我没有给 primefaces 一个公平的机会,因为该项目不支持任何视频播放器,因为它们没有预先安装,我们不希望播放简单的视频很麻烦,因为它是以前不麻烦。 如果可以帮助,我不想使用 primefaces。

无论如何,这是我下载视频的代码片段。 我也尝试了所有被注释掉的方法,但都没有奏效(Base64 视频的性能非常糟糕)。

    @SneakyThrows
public InputStream downloadVideoFromBlob() {
    String authorizationHeader = "XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX";
    String videoUrl = getUrlVideo(); //returns an https url
    try {
        URL url = new URL (videoUrl);
        HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
        connection.setRequestMethod("GET");
        connection.setRequestProperty  ("Authorization", authorizationHeader);
        connection.setDoInput(true);
        connection.setDoOutput(true);
        int responseCode = connection.getResponseCode();
        InputStream in = (InputStream)connection.getInputStream();
        return in;
        //return new DefaultStreamedContent(in, "video/mp4");
        //ByteArrayOutputStream out = new ByteArrayOutputStream();
        //byte[] buf = new byte[1024];
        //int n = 0;
        //while (-1!=(n=in.read(buf)))
        //{
        //  out.write(buf, 0, n);
        //}
        //out.close();
        //in.close();
        //return out.toByteArray();
        //return new String(Base64.encodeBase64(out.toByteArray()));
    } catch(Exception e) {
        e.printStackTrace();
    }
    return null;
}

这是视频标签代码:

<video width="640" height="480" controls="controls"  autoplay="autoplay" oncontextmenu="javascript:return false;">
    <source src="#{bean.downloadVideoFromBlob()}" type="video/mp4" />
</video>

编辑:TLDR:我不想安装第三方视频播放器,这使得主要面孔比 xhtml 视频标签更不受欢迎。 如果可能,我只想将身份验证 header 添加到 url 以获取 xhtml 视频标签。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM