我在一个web应用程序中使用MediaStream API,它允许多个用户基于webrtc进行conf调用。当我使用MediaStream.addTracks()时,轨道的id (MediaStreamTrack)会改变。
下面是一个具体的例子:
getUserMedia.call(navigator, {audio:true,video:false}, function(stream) {
console.log(stream.getAudioTracks()); //(1)
rtc.streams[0].addTrack(stream.getAudioTracks()[0]); //rtc object managed by webrtc.io
console.log(rtc.streams[0].getAudioTracks()); //(2)
}, function() {
console.log("Could not connect stream.");
onFail();
});(1):在这一点上,我的音频轨道是
enabled: true
id: "0eKd3T3arsIgrnLsIplvfA69feDzxvwEnu8ga0"
kind: "audio"
label: "0eKd3T3arsIgrnLsIplvfA69feDzxvwEnu8ga0"
onended: null
onmute: null
onunmute: null
readyState: "live"(2):现在我的音轨是
enabled: true
id: "bd3ba276-8804-4c6e-8dd7-f1bd316150e8"
kind: "audio"
label: "0eKd3T3arsIgrnLsIplvfA69feDzxvwEnu8ga0"
onended: null
onmute: null
onunmute: null
readyState: "live"如您所见,id已经改变了。这是正常行为吗?
发布于 2013-09-09 11:15:13
不,它不是。webrtc.com上的API描述表明,addStream函数的纵隔参数只是一个常量引用。所以身份不应该改变。
发布于 2019-10-10 10:37:11
调用addTrack函数时添加到流中的新轨道。例如,如果您在流中有两个音轨(一个视频轨道和一个音频轨道),那么在调用addTrack函数之后,您将有3条轨道和任何一条被新的轨道取代的轨道。因此,您将获得与以前不同的最新跟踪属性。
https://stackoverflow.com/questions/18467362
复制相似问题