(function() {
var onDOMContentLoaded = function() {
navigator.getUserMedia = navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia;
if (navigator.getUserMedia === undefined) {
window.alert('Cannot use WebRTC.');
return;
}
window.URL = window.URL || window.webkitURL;
var displayProperties = function(node, tableid, caption) {
var html = '<caption>' + caption + '</caption>';
html += '<thead>';
html += '<tr>';
html += '<th scope="col">Property</th>';
html += '<th scope="col">Value</th>';
html += '<th scope="col">hasOwnProperty</th>';
html += '</tr>';
html += '</thead>';
html += '<tbody>';
for (var key in node) {
html += '<tr>';
html += '<td>' + key + '</td>';
html += '<td>' + node[key] + '</td>';
html += '<td>' + node.hasOwnProperty(key) + '</td>';
html += '</tr>';
}
html += '</tbody>';
document.getElementById(tableid).innerHTML = html;
document.getElementById(tableid).parentNode.previousElementSibling.style.display = 'block';
};
var video = document.querySelector('video');
// Access microphone and camera
var medias = {audio : true, video : true};
var successCallback = function(stream) {
video.src = window.URL.createObjectURL(stream);
displayProperties(stream, 'mediastream-properties', 'MediaStream (LocalMediaStream)');
};
var errorCallback = function(error) {
displayProperties(error, 'navigatorusermediaerror-properties', 'NavigatorUserMediaError (MediaStreamError)');
};
// Start Stream
document.getElementById('button-start-stream').addEventListener(EventWrapper.CLICK, function() {
navigator.getUserMedia(medias, successCallback, errorCallback);
}, false);
};
if ((document.readyState === 'interactive') || (document.readyState === 'complete')) {
onDOMContentLoaded();
} else {
document.addEventListener('DOMContentLoaded', onDOMContentLoaded, true);
}
})();
function EventWrapper(){
}
(function(){
var click = '';
var start = '';
var move = '';
var end = '';
// Touch Panel ?
if (/iPhone|iPad|iPod|Android/.test(navigator.userAgent)) {
click = 'click';
start = 'touchstart';
move = 'touchmove';
end = 'touchend';
} else {
click = 'click';
start = 'mousedown';
move = 'mousemove';
end = 'mouseup';
}
EventWrapper.CLICK = click;
EventWrapper.START = start;
EventWrapper.MOVE = move;
EventWrapper.END = end;
})();