You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
var DtlsSrtpKeyAgreement = { DtlsSrtpKeyAgreement: true};
var optional = { optional: [DtlsSrtpKeyAgreement]};
// Set up audio and video regardless of what devices are present.
var sdpConstraints = {'mandatory': { 'OfferToReceiveAudio': true, 'OfferToReceiveVideo': true }};
function onIceCandidate(event) { /*if (event.candidate) { sendMessage({type: 'candidate', label: event.candidate.sdpMLineIndex, id: event.candidate.sdpMid, candidate: event.candidate.candidate}); noteIceCandidate("Local", iceCandidateType(event.candidate.candidate)); } else { console.log('End of candidates.'); }*/ console.log('onIceCandidate'); console.log(event);}
function onIceConnectionStateChanged(event) { console.log('onIceConnectionStateChanged'); console.log(event);}
function onSignalingStateChanged(event) { console.log('onSignalingStateChanged'); console.log(event);}
function onError(err) { window.alert(err.message);}
function onOfferCreated(description) { console.log(description); offer = description; pc.setLocalDescription(offer,onSetSessionDescriptionSuccess, onSetSessionDescriptionError);
sendMessage(offer);}
function sendMessage(offer) { var msgString = JSON.stringify(offer); console.log('C->S: ' + msgString);}
function onSetSessionDescriptionSuccess() { console.log('Set session description success.');}
function onSetSessionDescriptionError(error) { console.log('Failed to set session description: ' + error.toString());}
function init() { var configuration = {"iceServers":[{"url": "stun:23.21.150.121:3478"}]};
try { pc = new RTCPeerConnection(configuration, optional);
pc.onicecandidate = onIceCandidate; pc.onsignalingstatechange = onSignalingStateChanged; pc.oniceconnectionstatechange = onIceConnectionStateChanged; } catch (e) { console.log('Failed to create PeerConnection, exception: ' + e.message); alert('Cannot create RTCPeerConnection object; \ WebRTC is not supported by this browser.'); return; } if(getUserMedia) { if (getUserMedia) { getUserMedia = getUserMedia.bind(navigator); } // Request the camera.
getUserMedia( // Constraints
{ video: true, audio: true },
// Success Callback
function(localMediaStream) { // Get a reference to the video element on the page.
var vid = document.getElementById('camera-stream');
// Create an object URL for the video stream and use this
// to set the video source.
vid.src = window.URL.createObjectURL(localMediaStream); console.log(localMediaStream); pc.addStream(localMediaStream); channel = pc.createDataChannel("visio"); pc.createOffer(onOfferCreated, onError); },
// Error Callback
function(err) { // Log the error to the console.
console.log('The following error occurred when trying to use getUserMedia: ' + err); }
); } else { alert('Sorry, your browser does not support getUserMedia'); }
//channel = pc.createDataChannel("visio");
console.log(pc); //console.log(channel);
}
|