AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
# 视频分段加载 ## **视频分段加载及隐藏地址** 以blob:http达到隐藏地址(但是在浏览器控制台能看到地址) ``` <pre class="calibre10">``` <span class="token">/*readyState 0 Uninitialized 初始化状态。XMLHttpRequest 对象已创建或已被 abort() 方法重置。 1 Open open() 方法已调用,但是 send() 方法未调用。请求还没有被发送。 2 Sent Send() 方法已调用,HTTP 请求已发送到 Web 服务器。未接收到响应。 3 Receiving 所有响应头部都已经接收到。响应体开始接收但未完成。 4 Loaded HTTP 响应已经完全接收。 */</span> var xhr<span class="token1">=</span><span class="token5">new</span> <span class="token4">XMLHttpRequest</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span> var a<span class="token1">=</span>xhr<span class="token3">.</span><span class="token4">open</span><span class="token3">(</span><span class="token2">'POST'</span><span class="token3">,</span><span class="token2">'./resources/test.mp4'</span><span class="token3">,</span><span class="token6">true</span><span class="token3">)</span><span class="token3">;</span> var b <span class="token1">=</span> xhr<span class="token3">.</span>readyState<span class="token3">;</span> xhr<span class="token3">.</span>responseType<span class="token1">=</span><span class="token2">'blob'</span><span class="token3">;</span> xhr<span class="token3">.</span>onload<span class="token1">=</span><span class="token5">function</span><span class="token3">(</span>e<span class="token3">)</span><span class="token3">{</span> <span class="token5">if</span><span class="token3">(</span>request<span class="token3">.</span>readyState <span class="token1">===</span> <span class="token6">4</span> <span class="token1">&&</span> this<span class="token3">.</span>status<span class="token1">==</span><span class="token6">200</span><span class="token3">)</span><span class="token3">{</span> var blob <span class="token1">=</span>this<span class="token3">.</span>response<span class="token3">;</span> document<span class="token3">.</span><span class="token4">getElementById</span><span class="token3">(</span><span class="token2">'sound'</span><span class="token3">)</span><span class="token3">.</span>src<span class="token1">=</span>URL<span class="token3">.</span><span class="token4">createObjectURL</span><span class="token3">(</span>blob<span class="token3">)</span><span class="token3">;</span> <span class="token3">}</span> <span class="token3">}</span><span class="token3">;</span> xhr<span class="token3">.</span><span class="token4">send</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span> ``` ``` - - - - - - 如果单纯想播放 mp4 文件, video src 里直接添加就好。 如果想播放 flv 文件, 请使用 bilibili 的开源项目flv.js 。 如果想使用 MSE + XMLHttpRequest 加载流媒体, 请参阅 flv.js 源码 src/io/xhr-range-loader.js 以及 src/core/mse-controller.js 如果想播放 m3u8 分片列表, 请使用 hls.js 。 <https://neue.v2ex.com/t/328501> <https://github.com/Bilibili/flv.js>