私は、自分自身にブラウザウィンドウを接続し、マイカメラからビデオデータをストリーミングする簡単なwebRTCアプリケーションを追加しました。最終的な目標は、ページから2つのビデオストリームを取得することです.1つはカメラから直接取得し、もう1つはブラウザがローカルで作成したWebRTC接続から取得します。WebRTC remoteVideo stream not working
残念ながら、リモートビデオストリームは表示されません。どんな考え?
<video id="yours" autoplay></video>
<video id="theirs" autoplay></video>
そして、ここでは、私がのWebRTCのダンRisticの本を、次の、彼がコーディングでやったことを理解してい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);
});
});
};
です。残念ながら、リモートビデオは表示されません。
woww:私は非常代わりに新しい約束のAPI(Chromeのhttps)をお勧めします。この答えは私の一日を作りました。私はWebRTCを初めて使いました。私はあなたを非常に邪魔します! – marukobotto
私はそれを取得しません。私はたくさんのことを理解していますが、まだそれを得ていませんこの例ではピアとの接続が必要です。だから2番目の 'ビデオ'では、私はそうではなく、他の人を見るべきでしょうか? –
@DamianHetmanあなたは誰が見たいですか?:)これはローカルループのデモだけです。実際の通話では、最初に電話をかける相手と通話を設定するためにオファー/アンサーを交換するシグナリングチャンネルを知る必要があります。 – jib