Javascript 如何修复WebRTC发送方跟踪属性返回null以存储localMedia
我正在用Angular和SIPjs实现WebRTC。远程媒体工作正常,但我在添加本地媒体时遇到问题,因为发送方的track属性返回null,而不是假定正确存储的MediaStreamTrack对象 我使用的是SIPjs 0.13.6,问题至少出现在Chrome版本73.0.3683.86(官方版本)(64位)和Firefox 65.0.2(64位)中。SIP服务器是Docker中的星号Javascript 如何修复WebRTC发送方跟踪属性返回null以存储localMedia,javascript,angular,webrtc,sipjs,Javascript,Angular,Webrtc,Sipjs,我正在用Angular和SIPjs实现WebRTC。远程媒体工作正常,但我在添加本地媒体时遇到问题,因为发送方的track属性返回null,而不是假定正确存储的MediaStreamTrack对象 我使用的是SIPjs 0.13.6,问题至少出现在Chrome版本73.0.3683.86(官方版本)(64位)和Firefox 65.0.2(64位)中。SIP服务器是Docker中的星号 var localStream = new MediaStream(); pc.getSenders().f
var localStream = new MediaStream();
pc.getSenders().forEach(function(sender) {
localStream.addTrack(sender.track); //throws error because it says is null
});
我用以下结果做了这些测试,问题是轨道应该在那里,但当我尝试访问时,它是空的
console.log("peer connection array og sender objects:");
console.log(pc.getSenders());
结果,它似乎是getSenders()方法返回的数组的第一个元素中的一个mediaStreamTrack:
我不能上传照片,因为我需要更多的声誉,所以我必须这样做:
[RTCRtpSender]
0: RTCRtpSender
dtmf: RTCDTMFSender {ontonechange: null, canInsertDTMF: false, toneBuffer: ""}
track: MediaStreamTrack {kind: "audio", id: "26f1da43-56f3-48d8-882f-
03f9b4dad7d5", label: "Default - External Microphone (Conexant ISST
Audio)", enabled: true, muted: false, …}
__proto__: RTCRtpSender
length: 1
__proto__: Array(0)
接下来,我访问该数组的第一个对象:
console.log("first element of the array sender objects");
console.log(pc.getSenders()[0]);
结果,正如你所看到的,这里开始奇怪的事情(对我来说)。该对象似乎有一个空轨迹,但当您显示该对象时,MediaStreamTrack对象似乎就在那里
RTCRtpSender {track: null, dtmf: RTCDTMFSender}
dtmf: RTCDTMFSender {ontonechange: null, canInsertDTMF: false,
toneBuffer: ""}
track: MediaStreamTrack {kind: "audio", id: "26f1da43-56f3-48d8-882f-
03f9b4dad7d5", label: "Default - External Microphone (Conexant ISST
Audio)", enabled: true, muted: false, …}
__proto__: RTCRtpSender
我做的第三件事是尝试访问曲目的属性值:
console.log("the track of the sender above is");
console.log(pc.getSenders()[0].track);
它显示空值:
null
然后,当我尝试迭代getSenders()结果以获取每个发送者的轨迹并将其添加到MediaStream对象时,它会抛出一个错误,如文章的第一段代码所示?