我想确定VideoTrack是否包含屏幕共享或网络摄像头流。我找不到任何属性,也找不到合适的约束,我可以apply到音轨并稍后读出。
有人知道这样做的聪明方法吗?
我想避免通过dataChannel发送具有类型的streamId。
谢谢:)
EDIT1:到目前为止,尚无解决方案,因此我必须通过数据通道发送streamType和StreamId
该过程是这样的(以MediaStreamTrack为例):
如果需要,请致电MediaDevices.getSupportedConstraints()
以获取支持的约束列表,告诉您哪些约束浏览器知道的属性。这并不总是必要的,因为当您指定时,任何未知的都将被忽略他们-但是,如果您有任何无法缺少的东西,您可以首先检查以确保它们在列表中。
一旦脚本知道它想要的属性支持使用,然后可以检查API的功能及其实现,方法是检查曲目的getCapabilities()
方法;该对象列出了每个受支持的对象约束以及所支持的值或值的范围。
最后,将调用轨道的applyConstraints()
方法进行配置通过指定API的值或值范围来确定API希望将其用于任何可约束的属性有偏好。
轨道的getConstraints()
方法返回约束集传递到最近一次对applyConstraints()
的调用。这可能不由于属性,表示轨道的实际当前状态其要求的值必须进行调整,并且因为平台默认值未显示。完整表示轨道的当前配置,请使用getSettings()
。
在Media Stream API中,MediaStream和MediaStreamTrack都具有可约束的属性。