有没有办法在不创建视频标签的情况下从 URL 获取 MediaStream

Posted

技术标签:

【中文标题】有没有办法在不创建视频标签的情况下从 URL 获取 MediaStream【英文标题】:Is there a way to get a MediaStream from an URL without creating a video tag 【发布时间】:2021-12-24 20:12:27 【问题描述】:

来自https://***.com/a/21227589/130910:

var stream = videoTag.captureStream()

但我不想创建标签。

我想这样做是因为我的流可能来自网络摄像头或视频,当它是网络摄像头时,我将videoTag.srcObject 设置为navigator.mediaDevices.getUserMedia(...) 的结果。因此,它使 API 变得笨拙。

我想做:

const stream = getStreamFromLocalVideoOrWebcam()
videoTag.src = stream

这可能吗?最好的方法是什么?

【问题讨论】:

【参考方案1】:

我想这样做是因为我的信息流可能来自网络摄像头或视频

我认为这意味着您有一个 MediaStream(来自 getUserMedia/webcam)或一个 URL(指向一个视频)。

如果你真的有一个 MediaStream,你应该像现在一样设置srcObject。如果您有 URL,则应该改用 src 属性。所以,你的函数getStreamFromLocalVideoOrWebcam()的返回值的设计是有缺陷的。

你总是可以这样做:

function setVideoSource(videoEl) 
  if (... something ...) 
    videoEl.src = someVideoUrl;
   else 
    videoEl.srcObject = navigator.mediaDevices.getUserMedia(...);
  


const videoEl = document.createElement('video');
setVideoSource(videoEl);

【讨论】:

以上是关于有没有办法在不创建视频标签的情况下从 URL 获取 MediaStream的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在不导入 csv 的情况下从 .csv 创建 JSON?

有没有办法在不加入公会的情况下从提及中获取用户的 ID?

有没有办法在不使用画布 API 的情况下从图像文件中获取二进制数据?

有啥方法可以在不使用 Nest.js 中的 async/await 的情况下从数据库中获取数据?

在不使用 COM 的情况下从 C++ 调用 C# 方法

有没有办法在不使用图像选择器的情况下从照片应用程序呈现默认的 iOS 编辑视图?