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
2023-12-29 13:29:52 +0100
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
51c6e2775edcb433f700a62b87af36c01f1cabd0
51c6e277
1 parent
5568383d
manage media stream constraints listener
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
25 additions
and
3 deletions
lib/src/web/barcode_reader.dart
lib/src/web/mobile_scanner_web.dart
lib/src/web/zxing/zxing_barcode_reader.dart
lib/src/web/barcode_reader.dart
View file @
51c6e27
...
...
@@ -95,6 +95,13 @@ abstract class BarcodeReader {
await
completer
.
future
;
}
/// Set a listener for the media stream constraints.
void
setMediaTrackConstraintsListener
(
void
Function
(
MediaTrackConstraints
)
listener
)
{
throw
UnimplementedError
(
'setMediaTrackConstraintsListener() has not been implemented.'
,
);
}
/// Set the torch state for the active camera to the given [value].
Future
<
void
>
setTorchState
(
TorchState
value
)
{
throw
UnimplementedError
(
'setTorchState() has not been implemented.'
);
...
...
lib/src/web/mobile_scanner_web.dart
View file @
51c6e27
...
...
@@ -33,6 +33,9 @@ class MobileScannerWeb extends MobileScannerPlatform {
/// This container element is used by the barcode reader.
HTMLDivElement
?
_divElement
;
/// The stream controller for the media track constraints stream.
final
StreamController
<
MediaTrackConstraints
>
_constraintsController
=
StreamController
.
broadcast
();
/// The view type for the platform view factory.
final
String
_viewType
=
'MobileScannerWeb'
;
...
...
@@ -43,6 +46,14 @@ class MobileScannerWeb extends MobileScannerPlatform {
@override
Stream
<
BarcodeCapture
?>
get
barcodesStream
=>
_barcodesController
.
stream
;
void
_handleMediaTrackConstraintsChange
(
MediaTrackConstraints
constraints
)
{
if
(
_constraintsController
.
isClosed
)
{
return
;
}
_constraintsController
.
add
(
constraints
);
}
@override
Widget
buildCameraView
()
{
if
(!
_barcodeReader
.
isScanning
)
{
...
...
@@ -86,6 +97,9 @@ class MobileScannerWeb extends MobileScannerPlatform {
// Clear the existing barcodes.
_barcodesController
.
add
(
const
BarcodeCapture
());
// Listen for changes to the media track constraints.
_barcodeReader
.
setMediaTrackConstraintsListener
(
_handleMediaTrackConstraintsChange
);
await
_barcodeReader
.
start
(
startOptions
,
containerElement:
_divElement
!,
...
...
@@ -170,5 +184,6 @@ class MobileScannerWeb extends MobileScannerPlatform {
await
stop
();
await
_barcodesController
.
close
();
await
_constraintsController
.
close
();
}
}
...
...
lib/src/web/zxing/zxing_barcode_reader.dart
View file @
51c6e27
...
...
@@ -19,7 +19,7 @@ final class ZXingBarcodeReader extends BarcodeReader {
ZXingBarcodeReader
();
/// The internal media stream track constraints delegate.
final
MediaTrackConstraintsDelegate
_
flashlight
Delegate
=
const
MediaTrackConstraintsDelegate
();
final
MediaTrackConstraintsDelegate
_
mediaTrackConstraints
Delegate
=
const
MediaTrackConstraintsDelegate
();
/// The internal barcode reader.
ZXingBrowserMultiFormatReader
?
_reader
;
...
...
@@ -180,7 +180,7 @@ final class ZXingBarcodeReader extends BarcodeReader {
return
Future
<
bool
>.
value
(
false
);
}
return
_
flashlight
Delegate
.
hasFlashlight
(
mediaStream
);
return
_
mediaTrackConstraints
Delegate
.
hasFlashlight
(
mediaStream
);
}
@override
...
...
@@ -196,7 +196,7 @@ final class ZXingBarcodeReader extends BarcodeReader {
return
Future
<
void
>.
value
();
}
return
_
flashlight
Delegate
.
setFlashlightState
(
mediaStream
,
value
);
return
_
mediaTrackConstraints
Delegate
.
setFlashlightState
(
mediaStream
,
value
);
}
}
...
...
Please
register
or
login
to post a comment