首页 > 解决方案 > 有没有办法附加到对象 URL 或以其他方式创建流作为 URL?

问题描述

在 StackOverflow 上有一个有趣的讨论,在某些方面这个问题是一个后续问题。我过去也问过类似的问题,但我觉得这更普遍是关于对象 URL 的问题。

有很多次我想为 JS 中的图像或视频元素实现“.src”的流版本,可能来自字节流。不幸的是,我只看到了两个更受 JS 控制的主要选项:

  1. 创建一个 Blob,然后使用 URL.createObjectURL()。不幸的是,这似乎是静态的——但也许有办法改变内容?
  2. 创建一个媒体源。但是,这仅适用于视频,并且比仅使用视频元素要挑剔得多,这确实是我需要的支持级别。

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

标签: javascriptvideo-streamingstreamingfirefox-addon-webextensionsmedia-source

解决方案


有很多次我想为 JS 中的图像或视频元素实现“.src”的流版本,可能来自字节流。

使用Service Worker响应ReadableStream作为主体的Response 。

但我觉得这更普遍是关于对象 URL 的问题。

对象 URL 实际上只代表不可变的 Blob。MediaStream 对象 URL 是一种特殊情况,在这里并不真正适用,并且srcObject现在媒体元素存在已弃用的 API。

创建一个 Blob,然后使用 URL.createObjectURL()。不幸的是,这似乎是静态的——但也许有办法改变内容?

不,Blob 是不可变的。

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

...或音频。


推荐阅读