有没有一种方法可以附加到对象URL或以其他方式创建流作为URL?

时间:2020-01-31 17:06:41

标签: javascript video-streaming streaming firefox-webextensions media-source

here on StackOverflow上进行了有趣的讨论,从某种程度上讲,这个问题是后续的。我也问过similar question in the past,但我觉得这通常是关于对象URL的问题。

很多时候,我想为JS中的图像或视频元素实现“ .src”的流版本,也许是从字节流中实现的。不幸的是,我只看到两个更容易被JS控制的主要选项:

  1. 创建一个Blob,然后使用URL.createObjectURL()。不幸的是,这似乎是静态的-但也许有一种方法可以改变内容?
  2. 创建一个MediaSource。但是,这仅适用于视频,并且比仅使用视频元素更具挑剔性,这确实是我需要的支持水平。

关于如何创建某种类型的流对象URL的任何想法?和/或(如果没有的话),有谁知道为什么JS很久以前没有实现这种类型的流传输?

1 个答案:

答案 0 :(得分:1)

很多时候,我想为JS中的图像或视频元素实现“ .src”的流版本,也许是从字节流中实现的。

使用Service Workerrespond withResponse为主体的ReadableStream

但是我觉得这通常是关于对象URL的问题。

对象URL实际上仅表示不可变的Blob。 MediaStream对象URL是一种特殊情况,在这里并不真正适用,如今,媒体元素已弃用的API为srcObject

创建一个Blob,然后使用URL.createObjectURL()。不幸的是,这似乎是静态的-但也许有一种方法可以对内容进行变异?

不,Blob是不可变的。

创建一个MediaSource。但是,这仅适用于视频...

...或音频。