@@ -314,6 +314,12 @@ module.exports = function () {
314
314
function ( mediaStream ) {
315
315
activeMediaStream = mediaStream ;
316
316
var video = getVideoPreview ( ) ;
317
+ if ( ! video ) {
318
+ // video not ready yet
319
+ const code = currentCameraIndex ? 4 : 3
320
+ error ( code ) // FRONT_CAMERA_UNAVAILABLE : BACK_CAMERA_UNAVAILABLE
321
+ return
322
+ }
317
323
// Older browsers may not have srcObject
318
324
if ( "srcObject" in video ) {
319
325
video . srcObject = mediaStream ;
@@ -337,6 +343,9 @@ module.exports = function () {
337
343
tempCanvas . height = camera . height ;
338
344
tempCanvas . width = camera . width ;
339
345
var tempCanvasContext = tempCanvas . getContext ( "2d" ) ;
346
+ // Mirror horizontally: https://stackoverflow.com/a/3129152/1237919
347
+ tempCanvasContext . translate ( tempCanvas . width , 0 )
348
+ tempCanvasContext . scale ( - 1 , 1 )
340
349
tempCanvasContext . drawImage (
341
350
videoElement ,
342
351
0 ,
@@ -397,23 +406,22 @@ module.exports = function () {
397
406
"display:block;position:fixed;top:50%;left:50%;" +
398
407
"width:auto;height:auto;min-width:100%;min-height:100%;z-index:" +
399
408
ZINDEXES . preview +
400
- ";-moz-transform: translateX(-50%) translateY(-50%);-webkit-transform: " +
401
- "translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);" +
409
+ ";transform:translateX(-50%) translateY(-50%) rotateY(180deg);" +
402
410
"background-size:cover;background-position:50% 50%;background-color:#FFF;"
403
411
) ;
404
412
videoPreview . addEventListener ( "loadeddata" , function ( ) {
405
413
bringPreviewToFront ( ) ;
406
414
} ) ;
407
415
416
+ // Still image is displayed when preview is paused.
408
417
var stillImg = document . createElement ( "div" ) ;
409
418
stillImg . setAttribute ( "id" , ELEMENTS . still ) ;
410
419
stillImg . setAttribute (
411
420
"style" ,
412
421
"display:block;position:fixed;top:50%;left:50%;visibility: hidden;" +
413
422
"width:auto;height:auto;min-width:100%;min-height:100%;z-index:" +
414
423
ZINDEXES . still +
415
- ";-moz-transform: translateX(-50%) translateY(-50%);-webkit-transform: " +
416
- "translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);" +
424
+ ";transform:translateX(-50%) translateY(-50%);" +
417
425
"background-size:cover;background-position:50% 50%;background-color:#FFF;"
418
426
) ;
419
427
0 commit comments