Я добавил простое приложение webRTC, где оно подключит окно браузера к себе, потоковое видео данных с моей камеры. Конечной целью является получение двух видеопотоков на странице, один из которых поступает с камеры напрямую, а другой - из соединения WebRTC, которое браузер сделал локально.WebRTC remoteVideo поток не работает
К сожалению, удаленный видеопоток не отображается. Любая идея почему?
<video id="yours" autoplay></video>
<video id="theirs" autoplay></video>
И вот Javascript
function hasUserMedia() {
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia ||
navigator.msGetUserMedia;
return !!navigator.getUserMedia;
}
function hasRTCPeerConnection() {
window.RTCPeerConnection = window.RTCPeerConnection || window.webkitRTCPeerConnection
|| window.mozRTCPeerConnection;
return !!window.RTCPeerConnection;
}
var yourVideo = document.querySelector('#yours'),
theirVideo = document.querySelector('#theirs'),
yourConnection, theirConnection;
if (hasUserMedia()) {
navigator.getUserMedia({ video: true, audio: false }, function(stream) {
yourVideo.src = window.URL.createObjectURL(stream);
if (hasRTCPeerConnection()) {
startPeerConnection(stream);
} else {
alert("Sorry, your browser does not support WebRTC.");
}
}, function (error) {
console.log(error);
});
}else{
alert("Sorry, your browser does not support WebRTC.");
}
function startPeerConnection(stream){
var configuration = {
"iceServers": [{ "url": "stun:stun.1.google.com:19302"
}]
};
yourConnection = new RTCPeerConnection(configuration);
theirConnection = new RTCPeerConnection(configuration);
// Setup stream listening
yourConnection.addStream(stream);
theirConnection.onaddstream = function (event) {
theirVideo.src = window.URL.createObjectURL(event.stream);
console.log('stream added');
};
// console.log(yourConnection);
//console.log(theirConnection);
// Setup ice handling
yourConnection.onicecandidate = function (event) {
if (event.candidate) {
theirConnection.addIceCandidate(new RTCIceCandidate(event.
candidate));
}
};
theirConnection.onicecandidate = function (event) {
if (event.candidate) {
yourConnection.addIceCandidate(new RTCIceCandidate(event.
candidate));
}
};
// Begin the offer
yourConnection.createOffer(function (offer) {
yourConnection.setLocalDescription(offer);
theirConnection.setRemoteDescription(offer);
theirConnection.createAnswer(function (offer) {
theirConnection.setLocalDescription(offer);
yourConnection.setRemoteDescription(offer);
});
});
};
Я следую за книгу Дэна Ristić на WebRTC и понял, что он сделал с кодировкой. К сожалению, удаленное видео не отображается.
Woww. Этот ответ сделал мой день. Я новичок в WebRTC, и я буду вас очень беспокоить в будущем! – marukobotto
Я не понимаю. Я много понимаю, но все равно не понимаю. Этот пример должен установить соединение с одноранговым узлом. Поэтому во втором «видео» я должен видеть кого-то другого, а не меня, верно? –
@ DamianHetman, кого вы ожидали увидеть?:) Это демонстрация только локального цикла. Для реального вызова вам нужно знать, с кем звонить, и какой-либо канал сигнализации для обмена предложением/ответом для настройки вызова. – jib