Advertisement
Avatarr

webrtc

Jan 19th, 2013
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.    
  3. navigator.getUserMedia = navigator.webkitGetUserMedia || navigator.getUserMedia;
  4. window.URL = window.URL || window.webkitURL;
  5. var app = document.getElementById('wrapper');
  6. var video = document.getElementById('screen');
  7. var canvas = document.getElementById('photo');
  8. var gallery = document.getElementById('main-photo');
  9. document.getElementById('start').hidden = false;
  10.  
  11.  
  12.  
  13. function gotStream(stream) {
  14.     if (window.URL) {
  15.         video.src = window.URL.createObjectURL(stream);
  16.     } else {
  17.         video.src = stream; // Opera.
  18.     }
  19.  
  20.     video.onerror = function(e) {
  21.         stream.stop();
  22.     };
  23.  
  24.     stream.onended = noStream;
  25.  
  26.     video.onloadedmetadata = function(e) { // Not firing in Chrome. See
  27.         // crbug.com/110938.
  28.         document.getElementById('text-msg').hidden = true;
  29.         document.getElementById('wrapper').hidden = false;
  30.         document.getElementById('cap').hidden = false;
  31.         // document.getElementById('goto').hidden = false;
  32.         document.getElementById('start').hidden = true;
  33.  
  34.     };
  35.  
  36.     // Since video.onloadedmetadata isn't firing for getUserMedia video, we have
  37.     // to fake it.
  38.     setTimeout(function() {
  39.         canvas.width = video.videoWidth;
  40.         canvas.height = video.videoHeight;
  41.         document.getElementById('text-msg').hidden = true;
  42.         document.getElementById('wrapper').hidden = false;
  43.         document.getElementById('cap').hidden = false;
  44.         // document.getElementById('goto').hidden = false;
  45.         document.getElementById('start').hidden = true;
  46.  
  47.     }, 50);
  48. }
  49.  
  50. function noStream(e) {
  51.     var msg = 'Camera has stoped or click agian access to use camera';
  52.     if (e.code == 1) {
  53.         msg = 'User denied access to use camera.';
  54.     }
  55.     document.getElementById('error').textContent = msg;
  56. }
  57.  
  58.  
  59.  
  60.  
  61. function capture() {
  62.  
  63.     var photo = document.getElementById('photo'), context = photo.getContext('2d');
  64.     photo.width = video.clientWidth;
  65.     photo.height = video.clientHeight;
  66.     context.drawImage(video, 0, 0, photo.width, photo.height);
  67.     var img = document.createElement('img');
  68.     img.src = canvas.toDataURL('image/png');
  69.     gallery.appendChild(img);
  70.     //window.open(img.src, '_blank');
  71.    
  72.     $(document).ready(function(){
  73.         $('.bg').animate({
  74.             "opacity":"0.9"
  75.         }, 200, "linear");
  76.         $('div#main-photo').each(function() {
  77.             var $a1 = $(this);
  78.             var src = $a1.find('img').attr('src');
  79.             //$('div.lightbox strong').text(alt).addClass('posi');
  80.             $('.bg , .lightbox').css('display','block');
  81.             $('div.lightbox img').attr('src',src).fadeIn(500);
  82.            
  83.         });
  84.                      
  85.         $('.close').click(function(){
  86.                    
  87.             close();
  88.         });
  89.     });
  90.            
  91.     function close(){
  92.                    
  93.         $('.bg , .lightbox').css('display','none');
  94.     }
  95.     onStop();
  96.     gallery.removeChild(img);
  97. }
  98.  
  99. function onStop() {
  100.     video.src = " ";
  101.     document.getElementById('text-msg').hidden = false;
  102.     document.getElementById('wrapper').hidden = true;
  103.     document.getElementById("cap").hidden = true;
  104.     document.getElementById("goto").hidden = true;
  105.     document.getElementById("start").hidden = false;
  106.  
  107. }
  108.  
  109. function onStart(el) {
  110.    
  111.     if (!navigator.getUserMedia) {
  112.         document.getElementById('error').innerHTML = 'Sorry. <code>navigator.getUserMedia()</code> is not available.';
  113.         return;
  114.     } else {
  115.  
  116.         navigator.getUserMedia({
  117.             video : true
  118.         }, gotStream, noStream);
  119.     }
  120.  
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement