有没有办法在不创建视频标签的情况下从 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?
有没有办法在不使用画布 API 的情况下从图像文件中获取二进制数据?