Uint8Array 中的数字是多少?斑点

What are the numbers inside an Uint8Array? Blob

你好比我聪明的人,

我对网络开发了解不多,所以我希望能在这里得到一些答案。 我试图下载一些基本的 m3u8 文件来学习。很遗憾,所有片段都是 1x1p png 文件,以 ts 格式持续 10 秒。

所以现在我可以考虑的下一步是了解浏览器如何读取这些片段并显示所需的视频,而不仅仅是白色像素。所以我在 jwplayer 8 vanlong 流代码中查找并找到以下行:

Blob([new Uint8Array([0, 0, 0, 28, 102, 116, 121, 112, 105, 115, 111, 109, 0, 0, 2, 0, 105,...])], {type: "video/mp4"}))

我当时指的是

我想我了解了它的工作原理。基本上,有一个 returns blob 格式的请求。然后将这些东西转换为这些数字。

但现在我很挣扎。我不知道这些数字是什么。它们是mp4文件的内容吗?他们link 细分了吗?另外,如果那是真的,我不明白为什么它们在我的文件中是普通的,而不是像问题中那样加载的。 感谢您的帮助

//编辑 我用数字

写了一些基本的测试代码
blob = new Blob([new Uint8Array([0, 0, 0, 28, 102, 116, 121, 112, 105, 115, 111, 109, 0,...])], {
   type: "video/mp4"
})
console.log(blob)
var url = URL.createObjectURL(blob);
document.getElementById('_video').src = url;

视频瞬间结束

Javascript 以非常规的方式表示二进制数据。你看到的Uint8Array是一个Binary Array Buffer,用来存放视频文件的二进制数据。简单来说,这些数字是视频的原始二进制数据。

new Blob([new Uint8Array([0, 0, 0, 28, ..])]) 您所做的是从原始二进制数据创建一个新的 Blob 文件。您的视频文件没有 运行 的原因很可能是因为您的二进制数据不是 mp4 文件的正确表示。

了解有关“类型化数组”的更多信息:https://javascript.info/arraybuffer-binary-arrays