如何测试两个MediaStream的相等性?

时间:2016-12-02 16:21:03

标签: webrtc mediastream

我想知道是否有办法确定两个MediaStreams是否相等

你是什么意思"等于"?

我想确定两个流是否使用相同的硬件源(正在使用相同的麦克风和相机)。 使用与streamB完全相同的约束来获取streamA意味着它们是平等的。

以下是我迄今为止所做的尝试:

  1. 通过MediaStream id进行比较,例如:streamA.id == streamB.id 根据{{​​3}}:
  2. ,这种情况就会消失
      

    创建MediaStream对象时,用户代理必须生成标识符字符串,并且必须将对象的id属性初始化为该字符串。一个好的做法是使用UUID [rfc4122],它的规范形式长度为36个字符。为了避免指纹识别,实现应该在生成UUID时使用RFC 4122的4.4或4.5节中的表单。

    1. 比较to the specid - 相同的故事,每个曲目都会生成一个UUID。

    2. 比较曲目labels,其中当前Chrome中的曲目包含硬件的名称/标识符。这非常接近我所寻找的,MediaStreamTracks(强调我的):

    3.   

      用户代理可以标记音频和视频源(例如,"内置麦克风"或"外部USB网络摄像头")。 label属性必须返回对象的相应源的标签(如果有)。 如果相应的来源有或没有标签,则该属性必须返回空字符串

      我可以采取不同的方法吗?我是否应该在比较两个媒体流的情况下结束?您是否可以信任label属性?

      感谢您的时间。

1 个答案:

答案 0 :(得分:1)

groupIdkind一起可能是您最接近的事情。直到你在同一台设备上获得多个麦克风/摄像头......