您好我按照本教程创建了一个简单的webrtc示例。 https://www.webrtc-experiment.com/docs/WebRTC-PeerConnection.html。
所以看看我的JFFiddle: https://jsfiddle.net/xzspquew/9/ 请告诉我为什么我无法进入onaddstream功能?调用console.log("此函数调用")。为什么?
navigator.getUserMedia({audio:false, video:true}, success, error)
var pc = new RTCPeerConnection()
var pc2 = new RTCPeerConnection()
pc.onaddstream = function(event) {
console.log("this function is called")
var video2 = document.getElementById("video2")
video2.src = window.URL.createObjectURL(event.stream)
video2.play()
}
document.querySelector("#repondre").addEventListener('click', function repondre() {
var answer = prompt("Please enter your sdp remote offer");
console.log(answer)
pc2.setRemoteDescription(JSON.parse(answer))
pc2.createAnswer(successanswerrtc, errorrtc)
})
function successanswerrtc(answersdp) {
pc2.setLocalDescription(answersdp)
console.log(JSON.stringify(answersdp))
pc.setRemoteDescription(answersdp)
}
function sucessrtc(offersdp) {
pc.setLocalDescription(offersdp)
alert(JSON.stringify(offersdp))
console.log(JSON.stringify(offersdp))
}
function errorrtc(err) {
console.log("error" + err)
}
function success(stream) {
var video1 = document.getElementById("video1")
video1.src = window.URL.createObjectURL(stream)
video1.play()
pc.createOffer(sucessrtc, errorrtc)
}
function error() {
console.log("error")
}
答案 0 :(得分:1)
该教程似乎已过时。也许是https://webrtc.org/start/#demos-and-samples
根据MDN文档,它已被弃用:
https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/onaddstream
此属性已从规范中删除;您现在应该使用RTCPeerConnection.ontrack来监视跟踪事件。它包含在此处是为了帮助您调整现有代码并了解现有样本,这些样本可能尚未更新。
答案 1 :(得分:1)
看起来你正在尝试一个过时的演示,
尝试来自WebRTC官方this demo
在你的小提琴中,你没有处理候选人和溪流正常
如果您从pc
拨打电话pc2
,则需要通过拨打pc.addstream(stream)
将电子流添加到电脑,然后会触发pc2.onaddstream
或pc2.onaddtrack
方法。
我更新了你的小提琴https://jsfiddle.net/8mchrc3v/1/