try to fix safari flip and autoplay - webgbcam - [fork] gameboy webcam
HTML git clone git://src.adamsgaard.dk/webgbcam
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
DIR commit 6a9f7cec7deb3137748e6c4f6b90f978cbb3a57f
DIR parent 19b8afc57f939a18972ed02fd247d77f559ce4bd
HTML Author: Erin Pinheiro <hello@mynameiser.in>
Date: Mon, 24 Jan 2022 22:16:44 -0300
try to fix safari flip and autoplay
Diffstat:
M app.js | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
---
DIR diff --git a/app.js b/app.js
@@ -748,24 +748,31 @@ function initCameraDrawing() {
cameraVars.xOffset = 0;
cameraVars.yOffset = Math.floor((cameraStream.videoHeight - cameraVars.yScale) / 2);
}
- console.log(cameraVars);
-
+
// canvas starts flipped for user facing camera
- if(settings.facingMode != 'environment') {
+ let isSafari = navigator.vendor && navigator.vendor.indexOf('Apple') > -1 &&
+ navigator.userAgent &&
+ navigator.userAgent.indexOf('CriOS') == -1 &&
+ navigator.userAgent.indexOf('FxiOS') == -1;
+
+ if(settings.facingMode != 'environment' && !isSafari) {
//cameraView.getContext('2d').setTransform(-1, 0, 0, 1, 0, 0);
cameraVars.flipped = true;
- // cameraView.getContext('2d').scale(-1,1);
- // cameraVars.xOffset *= -1;
- // cameraVars.xScale *= -1;
+ // cameraView.getContext('2d').scale(-1,1);
+ // cameraVars.xOffset *= -1;
+ // cameraVars.xScale *= -1;
} else {
cameraVars.flipped = false;
}
-
+ console.log(cameraVars);
+
cameraOutput.width = cameraVars.width * outputScale;
cameraOutput.height = cameraVars.height * outputScale;
let ctx = cameraOutput.getContext("2d");
ctx.imageSmoothingEnabled = false;
+ cameraStream.play();
+
clearInterval(frameDrawing)
frameDrawing = setInterval(drawFrame, 100);
}