Toggle navigation
Toggle navigation
This project
Loading...
Sign in
flutter_package
/
mobile_scanner
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
Navaron Bracke
2024-04-22 14:22:06 +0200
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
e48a67f0acf38919083fb1e5fd0ec914f5e34a54
e48a67f0
1 parent
c445f89f
fix facing mode check on Safari
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
17 additions
and
3 deletions
lib/src/web/media_track_constraints_delegate.dart
lib/src/web/media_track_extension.dart
lib/src/web/mobile_scanner_web.dart
lib/src/web/media_track_constraints_delegate.dart
View file @
e48a67f
import
'dart:js_interop'
;
import
'package:mobile_scanner/src/web/media_track_extension.dart'
;
import
'package:web/web.dart'
;
/// This class represents a delegate that manages the constraints for a [MediaStreamTrack].
...
...
@@ -19,8 +20,9 @@ final class MediaTrackConstraintsDelegate {
final
MediaTrackCapabilities
capabilities
=
track
.
getCapabilities
();
final
MediaTrackSettings
settings
=
track
.
getSettings
();
final
JSArray
<
JSString
>?
facingModes
=
capabilities
.
facingModeNullable
;
if
(
capabilities
.
facingMode
.
toDart
.
isEmpty
)
{
if
(
facingModes
==
null
||
facingModes
.
toDart
.
isEmpty
)
{
return
MediaTrackSettings
(
width:
settings
.
width
,
height:
settings
.
height
,
...
...
lib/src/web/media_track_extension.dart
0 → 100644
View file @
e48a67f
import
'dart:js_interop'
;
import
'package:web/web.dart'
;
/// This extension provides nullable properties for [MediaTrackCapabilities],
/// for cases where the properties are not supported by all browsers.
extension
NullableMediaTrackCapabilities
on
MediaTrackCapabilities
{
/// The `facingMode` property is not supported on Safari.
@JS
(
'facingMode'
)
external
JSArray
<
JSString
>?
get
facingModeNullable
;
}
...
...
lib/src/web/mobile_scanner_web.dart
View file @
e48a67f
...
...
@@ -13,6 +13,7 @@ import 'package:mobile_scanner/src/mobile_scanner_view_attributes.dart';
import
'package:mobile_scanner/src/objects/barcode_capture.dart'
;
import
'package:mobile_scanner/src/objects/start_options.dart'
;
import
'package:mobile_scanner/src/web/barcode_reader.dart'
;
import
'package:mobile_scanner/src/web/media_track_extension.dart'
;
import
'package:mobile_scanner/src/web/zxing/zxing_barcode_reader.dart'
;
import
'package:web/web.dart'
;
...
...
@@ -125,10 +126,11 @@ class MobileScannerWeb extends MobileScannerPlatform {
final
MediaStreamTrack
videoTrack
=
tracks
.
first
;
final
MediaTrackCapabilities
capabilities
=
videoTrack
.
getCapabilities
();
final
JSArray
<
JSString
>?
facingModes
=
capabilities
.
facingModeNullable
;
// TODO: this is
empty on MacOS
, where there is no facing mode, but one, user facing camera.
// TODO: this is
an empty array on MacOS Chrome
, where there is no facing mode, but one, user facing camera.
// Facing mode is not supported by this track, do nothing.
if
(
capabilities
.
facingMode
.
toDart
.
isEmpty
)
{
if
(
facingModes
==
null
||
facingModes
.
toDart
.
isEmpty
)
{
return
;
}
...
...
Please
register
or
login
to post a comment