Я пытался интегрировать API, который обслуживает изображения и видео, с другим проектом, и я борюсь с xhtml / primefaces, воспроизводящими видео. Я должен упомянуть, что ранее мы передавали видео из локальной файловой системы с тегом video, и я успешно интегрировал API с двумя другими проектами без проблем.
В тот момент, когда я пытаюсь включить теги видео или теги p: media, я не могу воспроизвести видео в этом проекте. Я должен отметить, что я не дал 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: я не хочу устанавливать сторонний видеоплеер, который делает простые лица менее желательным, чем тег HTML видео. Я просто хочу добавить заголовок аутентификации в URL для тега видео HTML, если это возможно.