Skip to content

Commit d9274cd

Browse files
committed
fix facingMode for mobile device.
1 parent 35f6df6 commit d9274cd

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

lib/src/mediadevices_impl.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,16 @@ import 'dart:js_util' as jsutil;
55
import 'package:webrtc_interface/webrtc_interface.dart';
66

77
import 'media_stream_impl.dart';
8+
import 'utils.dart';
89

910
class MediaDevicesWeb extends MediaDevices {
1011
@override
1112
Future<MediaStream> getUserMedia(
1213
Map<String, dynamic> mediaConstraints) async {
1314
try {
14-
if (mediaConstraints['video'] is Map) {
15-
if (mediaConstraints['video']['facingMode'] != null) {
15+
if (!isMobile) {
16+
if (mediaConstraints['video'] is Map &&
17+
mediaConstraints['video']['facingMode'] != null) {
1618
mediaConstraints['video'].remove('facingMode');
1719
}
1820
}

lib/src/utils.dart

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import 'dart:html' as html;
2+
3+
bool get isMobile {
4+
final toMatch = [
5+
'Android',
6+
'webOS',
7+
'iPhone',
8+
'iPad',
9+
'iPod',
10+
'BlackBerry',
11+
'Windows Phone'
12+
];
13+
return toMatch.indexWhere((device) => html.window.navigator.userAgent
14+
.contains(RegExp(device, caseSensitive: false))) !=
15+
-1;
16+
}

0 commit comments

Comments
 (0)