我正在尝试使 blob 成为视频元素的 src。我的代码在以下情况下工作正常:
videoRef.src = URL.createObjectURL(blob)
但不推荐使用“src”和“URL.createObjectURL”来代替“srcObject” https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
和 https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia
我的问题是如何简单地将 blob 文件添加到 srcObject 中,如下所示:
videoRef.srcObject = blob
当我尝试上面的代码时,出现错误:“TypeError:无法在‘HTMLMediaElement’上设置‘srcObject’属性:提供的值不是‘MediaStream’类型。”
我怎么能不使用已弃用的 videoRef.src 并将 blob 直接应用于 videoRef.srcObject ?或者 blob 类型可以使用 src,而只有流不能使用 src 吗?
原文由 Will 发布,翻译遵循 CC BY-SA 4.0 许可协议
URL.createObjectURL
仅针对 流 而不是 blob 和媒体源弃用。您引用的 MDN 警告位于标题为 Using object URLs for media streams 的 部分下。警告本身说:
努力弃用
URL.createObjectURL
特别是围绕 流,因为流本质上是本地对象。看起来您的浏览器尚未为 blob 实现
srcObject
。这是普通的atm。例如,Chrome 和 Firefox 仅对流的 srcObject 提供 部分支持,但不支持 blob、文件或媒体源。
srcObject 上的 MDN 回应了这一点: