@@ -48,53 +48,50 @@ <h2>Sign Up</h2>
48
48
</ div >
49
49
50
50
<!-- Experimental live profile pic + Matilda, Tracey, Steph and Sam -->
51
- < div class ='photobox '>
52
- < video autoplay > </ video >
53
- < img src ="" hidden class ='profile_image '>
54
- < canvas hidden width ='200 ' height ='150 '> </ canvas >
55
- < label > Click on preview to take snapshot</ label >
51
+ < div class ="signup_div photobox ">
52
+ < video autoplay id ="webcam-vid "> </ video >
53
+ < canvas width ='200 ' height ='150 ' id ='webcam-canvas '> </ canvas >
54
+ < input id ="webcam-input " type ="text " name ="webcam-input " value ="" hidden >
56
55
</ div >
57
56
58
57
< script >
59
- var canvas = document . querySelector ( 'canvas' ) ;
60
- var profile_image = document . querySelector ( '.profile_image' ) ;
61
- var profile_label = document . querySelector ( '.photobox label' ) ;
58
+ var canvas = $ ( '#webcam-canvas' ) . first ( ) [ 0 ] ;
59
+ var profile_image = $ ( '#webcam-photo' ) . first ( ) [ 0 ] ;
62
60
var ctx = canvas . getContext ( '2d' ) ;
63
61
var video = document . querySelector ( 'video' ) ;
64
- var localMediaStream = null ;
65
- navigator . getUserMedia = navigator . getUserMedia ||
66
- navigator . webkitGetUserMedia ||
67
- navigator . mozGetUserMedia ||
68
- navigator . msGetUserMedia ;
69
- var errorCallback = function ( e ) {
70
- console . log ( 'Reeeejected!' , e ) ;
71
- } ;
72
62
73
- function snapshot ( ) {
74
- if ( localMediaStream ) {
75
- ctx . drawImage ( video , 0 , 0 , canvas . width , canvas . height ) ;
76
- // "image/webp" works in Chrome.
77
- // Other browsers will fall back to image/png.
78
- profile_image . src = canvas . toDataURL ( 'image/webp' ) ;
79
- profile_image . hidden = false ;
80
- profile_label . hidden = true ;
63
+ navigator . getUserMedia = navigator . getUserMedia || navigator . webkitGetUserMedia || navigator . mozGetUserMedia || navigator . msGetUserMedia ;
64
+
65
+
66
+ if ( navigator . getUserMedia ) {
67
+ // set up the video -> canvas
68
+ navigator . getUserMedia ( { video : true , audio : false } ,
69
+ // success
70
+ function ( stream ) {
71
+ video . srcObject = stream ;
72
+ } ,
73
+ // failure
74
+ function ( ) {
75
+ console . log ( "Media failed. Probably denied webcam" )
81
76
}
82
- }
77
+ ) ;
78
+ // set up canvas by drawing font on it
79
+ ctx . font = "15px Calibri"
80
+ ctx . fillText ( "Click on preview " , canvas . width / 2 , canvas . height / 2 - 8 )
81
+ ctx . fillText ( "to take snapshot" , canvas . width / 2 , canvas . height / 2 + 8 )
82
+ // listener on the video element
83
+ video . addEventListener ( "click" , function ( ) {
84
+ ctx . drawImage ( video , 0 , 0 , canvas . width , canvas . height ) ;
85
+ } ) ;
86
+ }
87
+ else {
88
+ alert ( "Your brower does not support webcam :(" )
89
+ }
90
+
83
91
84
- video . addEventListener ( 'click' , snapshot , false ) ;
85
92
86
- // Not showing vendor prefixes.
87
- navigator . getUserMedia ( { video : true , audio : false } , function ( stream ) {
88
- video . src = window . URL . createObjectURL ( stream ) ;
89
93
90
- localMediaStream = stream ;
91
94
92
- // Note: onloadedmetadata doesn't fire in Chrome when using it with getUserMedia.
93
- // See crbug.com/110938.
94
- video . onloadedmetadata = function ( e ) {
95
- // Ready to go. Do some stuff.
96
- } ;
97
- } , errorCallback ) ;
98
95
</ script >
99
96
</ p >
100
97
< p >
0 commit comments