Я пытался интегрировать 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, если это возможно.