Open yaofly2012 opened 2 years ago
Blob
Blob
对象表示一个不可变、原始数据的类文件对象。
- 不可变(immutable);
- 原始数据(raw data);
- 类文件(file-like)。
File
对象继承了Blob
对象(即File
对象一种特殊的Blob
)。
Blob
就是一个含有特殊数据(可以指定MIME Type
)的对象,这些数据可以是二进制的,也可以是字符串。
var aFileParts = ['<a id="a"><b id="b">hey!</b></a>']; // an array consisting of a single DOMString
var oMyBlob = new Blob(aFileParts, {type : 'text/html'}); // the blob
oMyBlob.text().then(console.log); // "<a id="a"><b id="b">hey!</b></a>"
Blob
URL就是Blob
对象的URL。形如:
blob:http://127.0.0.1:8080/a003a4de-a0e6-4af2-b304-baea16b14538
Blob
URL的构成:由两部分构成:blob:唯一ID
Blob
协议,即blob:
;blob:http://127.0.0.1:8080/a003a4de-a0e6-4af2-b304-baea16b14538
当前页面的origin
+Hash值。
注意这里的origin
只是用于构建Blob
URL,并不是说数据可以来自服务端。blob:FD802099-9145-4C60-9C40-B761B27E921E
// 接着上面的例子,直接在Chrome【新标签页】的 DevTool里执行的
URL.createObjectURL(oMyBlob); // blob:chrome://new-tab-page/97b3fe68-984b-49cb-8a53-c2c62daa918a
总结:
Blob
表示的是本地数据,Blob
URL也只能指向本地数据(别被origin
迷惑了);Blob
URL可以直接赋值给Image.src
属性。MediaSource
/SourceBuffer
将video/audio分成许多段(segment)。
视频网站提供功能:
背景
源于思否上的一个提问:
stackoverflow也有类似的提问
涉及到自己的知识盲区了,赶紧的google下。
TODO
视频流(Video stream) MediaSource ? 图片流?
相关文章: Understanding blob url video streaming How video streaming works on the web: An introduction HLS.js How to Download Blob Videos? (Three Ways) What is blob and how to use it to protect videos from downloading?