mirror of
https://github.com/YunoHost-Apps/movim_ynh.git
synced 2024-09-03 19:46:19 +02:00
124 lines
3.4 KiB
JavaScript
Executable file
124 lines
3.4 KiB
JavaScript
Executable file
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);
|
|
}
|