javascript - 有没有办法附加到对象 URL 或以其他方式创建流作为 URL?
问题描述
在 StackOverflow 上有一个有趣的讨论,在某些方面这个问题是一个后续问题。我过去也问过类似的问题,但我觉得这更普遍是关于对象 URL 的问题。
有很多次我想为 JS 中的图像或视频元素实现“.src”的流版本,可能来自字节流。不幸的是,我只看到了两个更受 JS 控制的主要选项:
- 创建一个 Blob,然后使用 URL.createObjectURL()。不幸的是,这似乎是静态的——但也许有办法改变内容?
- 创建一个媒体源。但是,这仅适用于视频,并且比仅使用视频元素要挑剔得多,这确实是我需要的支持级别。
关于如何创建某种类型的流对象 URL 的任何想法?和/或如果没有,有人知道为什么 JS 很久很久以前还没有实现这种类型的流式传输吗?
解决方案
有很多次我想为 JS 中的图像或视频元素实现“.src”的流版本,可能来自字节流。
使用Service Worker响应以ReadableStream作为主体的Response 。
但我觉得这更普遍是关于对象 URL 的问题。
对象 URL 实际上只代表不可变的 Blob。MediaStream 对象 URL 是一种特殊情况,在这里并不真正适用,并且srcObject
现在媒体元素存在已弃用的 API。
创建一个 Blob,然后使用 URL.createObjectURL()。不幸的是,这似乎是静态的——但也许有办法改变内容?
不,Blob 是不可变的。
创建一个媒体源。但是,这仅适用于视频...
...或音频。
推荐阅读
- reactjs - 中继突变在测试中没有同步解决
- c - 初学者,试图读取文件在 ubuntu 中返回一个空指针
- dialogflow-cx - Sys.person 在 DialogFlow CX 中不可用
- mysql - MySQL没有正确下载
- linker - 如果位置计数器在链接描述文件中初始化为太小或太大,则静态可执行段错误
- ipython - 在 Atom 中使用氢的巨大 IPKernelApp 错误
- javascript - 检查firebase中的文档是否存在
- flutter - Flutter Stack Widget:将层的大小绑定到底层的大小
- python - 将答案存储为打印语句,以便稍后在打印语句中使用
- c - 在哪里以及如何替换 ProFTPD 项目的服务器代码?