【发布时间】:2020-07-27 08:16:29
【问题描述】:
如果您的应用想要获得相同的用户媒体,例如具有完全相同约束的音频,不止一次,navigator.mediaDevices.getUserMedia 调用会返回一个新流,因此将分配相同数量的计算资源,还是只是为您提供相同的流(具有相同引用的相同对象)因此不使用额外资源?
我正在将用户的音频流传输给应用程序的另一个用户。在某个时候,第三个或更多用户将加入,他们需要第一个用户向第二个用户传输的相同音频传输给他们自己。
我希望与不为同一音频流的副本分配新资源一样高效。
我应该再次调用navigator.mediaDevices.getUserMedia,它会给我以前给我的相同流(相同的引用),还是我不应该这样做,因为它会给我一个新的音频流,即使我提供的约束是完全一样,我应该只是重用以前返回的音频流,比如将它存储在一个变量中?
我的调查表明流'MediaStreamobjects')ids 是不同的。看起来它们是不同的对象。
const str = await navigator.mediaDevices.getUserMedia({audio: true})
MediaStream {
active: true
id: "{f3b334cd-8507-408f-94e9-40b42bbd73f6}"
...
}
const str1 = await navigator.mediaDevices.getUserMedia({audio: true})
MediaStream {
active: true
id: "{ec94325c-19d8-4e91-b668-636f3c267ad4}"
...
}
对Object.is(str, st1) 的调用也会返回false。
【问题讨论】:
标签: webrtc getusermedia mediastream