我在 PeerJS 中收到 stream.getTracks is not a function 错误。我该如何解决?
I get an stream.getTracks is not a function error in PeerJS. How do i fix this?
所以我一直在使用 PeerJS 制作一个 p2p 聊天应用程序,它在尝试聊天时有效,但是当我尝试使用以下功能呼叫某人时:
function callEm(id){
call = peer.call(id,
navigator.mediaDevices.getUserMedia({video: false, audio: true})
);
call.on('stream', function(stream) { // B
window.remoteAudio.srcObject = stream; // C
window.remoteAudio.autoplay = true; // D
window.peerStream = stream; //E
showConnectedContent(); //F });
})
}
我从 PeerJS 得到一个错误,说 e.getTracks is not a function
e.getTracks
是peerJS库中的一段代码:https://unpkg.com/peerjs@1.3.1/dist/peerjs.min.js
我已经尝试了我在 Internet 上找到的所有内容,但仍然出现此错误。我希望有人能够帮助我。
编辑:我尝试了更简洁的库版本(https://unpkg.com/peerjs@1.3.1/dist/peerjs.js),但出现错误
stream.getTracks() is not a function
所以我找到了解决方案,问题是我的代码有误:P
所以我创建了一个调用具有 Id 的人的函数。
早些时候是:
function callEm(id){
console.log(id);
console.log(navigator.mediaDevices.getUserMedia({video: false, audio: true}));
call = peer.call(id,
// window.localStream
navigator.mediaDevices.getUserMedia({video: false, audio: true})
);
call.on('stream', function(stream) { // B
window.remoteAudio.srcObject = stream; // C
window.remoteAudio.autoplay = true; // D
window.peerStream = stream; //E
showConnectedContent(); //F });
})
}
问题是我提供了作为 MediaStream 的承诺,而不是实际值。 我知道的愚蠢错误
所以在一个不和谐的朋友向我指出并帮助我改变它之后,
函数变为:
function callEm(id){
navigator.mediaDevices.getUserMedia({video: false, audio: true})
.then(function(stream) {
call = peer.call(id, stream);
call.on('stream', function(stream) { // B
window.remoteAudio.srcObject = stream; // C
window.remoteAudio.autoplay = true; // D
window.peerStream = stream; //E
showConnectedContent(); //F });
})
})
.catch(function(err) {
console.log("error: " + err);
})
);
}
然后修复了它。我还没来得及接听电话,但这个电话没有任何错误!
我希望有人觉得这有用。
所以我一直在使用 PeerJS 制作一个 p2p 聊天应用程序,它在尝试聊天时有效,但是当我尝试使用以下功能呼叫某人时:
function callEm(id){
call = peer.call(id,
navigator.mediaDevices.getUserMedia({video: false, audio: true})
);
call.on('stream', function(stream) { // B
window.remoteAudio.srcObject = stream; // C
window.remoteAudio.autoplay = true; // D
window.peerStream = stream; //E
showConnectedContent(); //F });
})
}
我从 PeerJS 得到一个错误,说 e.getTracks is not a function
e.getTracks
是peerJS库中的一段代码:https://unpkg.com/peerjs@1.3.1/dist/peerjs.min.js
我已经尝试了我在 Internet 上找到的所有内容,但仍然出现此错误。我希望有人能够帮助我。
编辑:我尝试了更简洁的库版本(https://unpkg.com/peerjs@1.3.1/dist/peerjs.js),但出现错误
stream.getTracks() is not a function
所以我找到了解决方案,问题是我的代码有误:P
所以我创建了一个调用具有 Id 的人的函数。 早些时候是:
function callEm(id){
console.log(id);
console.log(navigator.mediaDevices.getUserMedia({video: false, audio: true}));
call = peer.call(id,
// window.localStream
navigator.mediaDevices.getUserMedia({video: false, audio: true})
);
call.on('stream', function(stream) { // B
window.remoteAudio.srcObject = stream; // C
window.remoteAudio.autoplay = true; // D
window.peerStream = stream; //E
showConnectedContent(); //F });
})
}
问题是我提供了作为 MediaStream 的承诺,而不是实际值。 我知道的愚蠢错误
所以在一个不和谐的朋友向我指出并帮助我改变它之后, 函数变为:
function callEm(id){
navigator.mediaDevices.getUserMedia({video: false, audio: true})
.then(function(stream) {
call = peer.call(id, stream);
call.on('stream', function(stream) { // B
window.remoteAudio.srcObject = stream; // C
window.remoteAudio.autoplay = true; // D
window.peerStream = stream; //E
showConnectedContent(); //F });
})
})
.catch(function(err) {
console.log("error: " + err);
})
);
}
然后修复了它。我还没来得及接听电话,但这个电话没有任何错误!
我希望有人觉得这有用。