node-webrtc:MediaStream 不是 MediaStream 的实例,由 MediaStream.getTracks() 返回的轨道不是 MediaStreamTrack

问题描述

我正在尝试使用 JsSIP 开发与 Node.js 兼容的 node-webrtc 分支,但我遇到了障碍。

在我的代码中,我还尝试克隆轨道,看看这是否能解决它也不能解决的问题。

这是我的代码 (context):

for (let i of stream.getTracks()) {
    let trackClone = i.clone();
    console.log(i,trackClone,i.constructor,MediaStreamTrack,i.constructor == MediaStreamTrack,i instanceof MediaStreamTrack,stream,stream.getTracks());
    console.log(i instanceof MediaStream);
    this._connection.addTrack(trackClone,stream);
}

控制台中的预期结果: MediaStreamTrack {} MediaStreamTrack {} [Function: MediaStreamTrack] [Function: MediaStreamTrack] true true MediaStream {} [ MediaStreamTrack {} ] true

控制台中的实际结果: MediaStreamTrack {} MediaStreamTrack {} [Function: MediaStreamTrack] [Function: MediaStreamTrack] false false MediaStream {} [ MediaStreamTrack {} ] false

这是一个问题,因为 RTCPeerConnection.addTrack() 不适用于这些假“轨道”或假流。

我认为文件之间传输的流可能有问题,因为在它被传递到这个函数之前,stream instanceof MediaStream = true

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)