video-streaming - 是否有允许设置身份验证标头的 html 视频播放器?
问题描述
我正在尝试使用来自需要基于令牌的身份验证的服务器的 HTML5 视频播放 WebM 或 mp4 视频文件。我找不到任何支持设置 HTTP 请求标头 fr 获取媒体的请求的播放器。
仅支持为 HLS 和 DASH 媒体设置标头。
已经尝试过 video.js:(https://github.com/videojs/video.js/issues/6348),react-player,video-react 没有运气。
我已经从头实现了所需的解决方案,通过 XMLHttpRequest 使用 MediaSource 和 reding 文件作为数组缓冲区(类似于https://html5-demos.appspot.com/static/media-source.html)获取它,但我宁愿使用一些现有的更多强大的解决方案。
解决方案
这是一个 hack,但您可以尝试使用ServiceWorker。
您的 ServiceWorker 可以附加适当的身份验证标头,然后您根本不必在视频播放器中做任何特殊或奇怪的事情。您可以继续使用标准<video>
标签。此外,浏览器可以针对请求的范围保持自己的行为,并且您不必经历媒体源扩展的头痛和不兼容问题。
另见: https ://serviceworke.rs/strategy-cache-and-update.html
请注意,尽管这并不总是有效......有时该 Service Worker 未加载(例如当用户执行 shift+refresh 时)。
推荐阅读
- javascript - 无法在原型上调用函数
- reactjs - graphql:如何正确处理上一页、下一页、最后一页和第一页?
- python - 我的 MANIFEST.in 内容安装到与包的其余部分不同的位置
- php - Modal 不会因为 GET ID 而改变它的内容
- android - 如何在android studio中删除应用程序图标中的黑色背景?
- python - Python如何使用多个可接受的选项验证用户输入
- c++11 - 从向量位置获取数值
- android - 使用 Volley Json Mysql 自动刷新带有图像和文本的 ListView
- javascript - 我试图提醒“70”和“John”,但我收到了一个提醒“[object Object]”
- javascript - 如何始终保持 Plotlly.js 中的峰值或以编程方式触发它们?