Julian Steenbakker
Committed by GitHub

Merge pull request #78 from djpnewton/rear-cam-web

fix use of 'facingMode' to enable rear cam on web
... ... @@ -80,8 +80,10 @@ class MobileScannerWebPlugin {
Future<Map> _start(arguments) async {
vidDiv.children = [video];
final CameraFacing cameraFacing =
arguments['cameraFacing'] ?? CameraFacing.front;
var cameraFacing = CameraFacing.front;
if (arguments.containsKey('facing')) {
cameraFacing = CameraFacing.values[arguments['facing']];
}
// See https://github.com/flutter/flutter/issues/41563
// ignore: UNDEFINED_PREFIXED_NAME
... ... @@ -105,18 +107,17 @@ class MobileScannerWebPlugin {
Map? capabilities =
html.window.navigator.mediaDevices?.getSupportedConstraints();
if (capabilities != null && capabilities['facingMode']) {
UserMediaOptions constraints = UserMediaOptions(
video: VideoOptions(
facingMode:
(cameraFacing == CameraFacing.front ? 'user' : 'environment'),
width: {'ideal': 4096},
height: {'ideal': 2160},
));
var constraints = {
'video': VideoOptions(
facingMode:
(cameraFacing == CameraFacing.front ? 'user' : 'environment'))
};
_localStream =
await html.window.navigator.getUserMedia(video: constraints);
await html.window.navigator.mediaDevices?.getUserMedia(constraints);
} else {
_localStream = await html.window.navigator.getUserMedia(video: true);
_localStream = await html.window.navigator.mediaDevices
?.getUserMedia({'video': true});
}
video.srcObject = _localStream;
... ... @@ -146,7 +147,7 @@ class MobileScannerWebPlugin {
'torchable': hasFlash
};
} catch (e) {
throw PlatformException(code: 'MobileScannerWeb', message: e.toString());
throw PlatformException(code: 'MobileScannerWeb', message: '$e');
}
}
... ... @@ -166,7 +167,7 @@ class MobileScannerWebPlugin {
Future<void> cancel() async {
try {
// Stop the camera stream
_localStream!.getTracks().forEach((track) {
_localStream?.getTracks().forEach((track) {
if (track.readyState == 'live') {
track.stop();
}
... ...