我想知道是否有办法确定两个MediaStreams是否相等。
“平等”是什么意思?
我想确定两个流是否使用相同的硬件源(使用相同的麦克风和摄像头)。获取streamB
完全相同的约束streamA
意味着它们是相等的。
这是我迄今为止尝试过的:
- 通过 MediaStream 进行比较,
id
例如:根据规范,streamA.id == streamB.id
这会消失:
创建 MediaStream 对象时,用户代理必须生成标识符字符串,并且必须将对象的 id 属性初始化为该字符串。一个好的做法是使用 UUID [rfc4122],它的规范形式为 36 个字符。为避免指纹识别,实现在生成 UUID 时应使用 RFC 4122 的 4.4 或 4.5 节中的形式。
比较MediaStreamTracks
id
的's - 同样的故事,每个轨道生成一个 UUID。labels
比较在当前 Chrome 中包含硬件名称/标识符的曲目。然而,这与我正在寻找的非常接近(强调我的):
用户代理可以标记音频和视频源(例如,“内部麦克风”或“外部 USB 网络摄像头”)。label 属性必须返回对象对应源的标签(如果有)。如果相应的源有或没有标签,则属性必须改为返回空字符串
我可以采取不同的方法吗?我应该永远不会遇到比较两个媒体流的情况吗?你会说我可以信任这个label
属性吗?
谢谢你的时间。