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

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

var stream = videoTag.captureStream()

但我不想创建标签。

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

我想做:

const stream = getStreamFromLocalVideoOrWebcam()
videoTag.src = stream

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

【问题讨论】:

    标签: html html5-video getusermedia media-source


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      • 2019-11-30
      • 2012-07-25
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      相关资源
      最近更新 更多