Есть ли способ воспроизвести Java InputStream с тегами видео xhtml ИЛИ включить заголовок авторизации с тегами видео xhtml?

Я пытался интегрировать API, который обслуживает изображения и видео с другим проектом, и борюсь с воспроизведением видео xhtml/primefaces. Я должен упомянуть, что ранее мы обслуживали видео из локальной файловой системы с тегом видео, и что я успешно интегрировал API с двумя другими проектами без проблем.

В тот момент, когда я пытаюсь включить теги видео или теги p:media, я не могу воспроизвести видео в этом проекте. Я должен упомянуть, что я не дал равных шансов первичным изображениям, потому что ни один из видеоплееров не поддерживался для проекта, потому что они не были предварительно установлены, и мы не хотим, чтобы воспроизведение простого видео было проблемой, потому что это было не хлопот раньше. Я не хочу использовать простые лица, если это может помочь.

Во всяком случае, вот мой фрагмент кода для загрузки видео. Я пробовал все способы, которые также закомментированы, и ни один из них не работал (и производительность для видео 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. Я просто хочу добавить заголовок авторизации к URL-адресу видеотега xhtml, если это возможно.


person KoalaKoalified    schedule 28.10.2019    source источник
comment
Я ищу конкретное видео и упомянул, что p:media является менее предпочтительным решением по сравнению с тегом видео xhtml.   -  person KoalaKoalified    schedule 28.10.2019
comment
Я не заметил вашей попытки также вернуть StreamedContent и отозвал свой закрытый голос. Возможно, будет полезен обходной путь по аналогии с этим: Получить конкретный URL из ‹p:graphicImage›, возвращающего StreamedContent   -  person Selaron    schedule 28.10.2019
comment
Почему обычный тег видео не работает (при условии, что вы используете его в других приложениях)   -  person Kukeltje    schedule 29.10.2019
comment
Все вышеперечисленные решения привели к пустому видео. Я не уверен, почему это не сработало.   -  person KoalaKoalified    schedule 29.10.2019
comment
Я подозреваю, что stackoverflow.com/questions/8207325/ быть дубликатом. пожалуйста, проверьте   -  person Kukeltje    schedule 30.10.2019
comment
У меня нет проблем с отображением изображений. На самом деле API, который я использую, обслуживает как изображения, так и видео, но видео, которые я не могу отобразить, тогда как изображения отображаются просто отлично.   -  person KoalaKoalified    schedule 30.10.2019