WebRtc webpage not working with flutter webview while it is working on browser

Viewed 17

I have recently created a Webrtc web application hosted on Ubuntu. It works as expected on browser, both pc and mobile browsers. It does ask for camera and mic permission as well.

My problem starts when I use the web url on flutter with flutter_webview_pro plugin. I understand that I have to ask for permission on flutter which I do as below with permission_handler plugin:

bool _permissions = false;
final Completer<WebViewController> _controller =
Completer<WebViewController>();

@override
void initState() {
  super.initState();
  if (Platform.isAndroid) {
    WebView.platform = SurfaceAndroidWebView();
  }
  permissions();
}

Future<void> permissions() async {
  Map<Permission, PermissionStatus> multiPermissions = await [
    Permission.camera,
    Permission.microphone,
  ].request();
  if(multiPermissions[Permission.camera] != PermissionStatus.granted){
    _getCameraPermission();
  } else if(multiPermissions[Permission.microphone] != PermissionStatus.granted){
    _getMicrophonePermission(true);
  } else {
    setState(() {
      _permissions = true;
    });
  }
}

void _getCameraPermission(){
  Permission.camera.request().then((cameraStatus) {
    if(cameraStatus.isGranted == true){
      _getMicrophonePermission(true);
    } else {
      debugPrint('debug: Camera Permission Denied');
      _getMicrophonePermission(false);
    }
  });
}

void _getMicrophonePermission(cameraPermission){
  Permission.microphone.request().then((microphoneStatus) {
    if(microphoneStatus.isGranted && cameraPermission){
      setState(() {
        _permissions = true;
      });
    } else {
      debugPrint('debug: Permission Denied');
    }
  });
}

@override
Widget build(BuildContext context) {
  return Scaffold(
    body: _permissions ? WebView(
      javascriptMode: JavascriptMode.unrestricted,
      initialUrl: 'https://subdomain.mydomain.com:8443/?room=123456',
      onWebViewCreated: (WebViewController webViewController) {
        _controller.complete(webViewController);
      },
    ) : Container(),
    );
}

And I get following error:

E/libc    ( 8244): Access denied finding property "vendor.camera.fullsize.cameraId"
E/libc    ( 8244): Access denied finding property "vendor.camera.fullsize.packagelist"
E/libc    ( 8244): Access denied finding property "vendor.camera.fullsize.extrapackagelist"
E/libc    ( 8244): Access denied finding property "vendor.camera.aux.packagelist"
E/libc    ( 8244): Access denied finding property "vendor.camera.fullsize.cameraId"
E/libc    ( 8244): Access denied finding property "vendor.camera.fullsize.packagelist"
E/libc    ( 8244): Access denied finding property "vendor.camera.fullsize.extrapackagelist"
E/libc    ( 8244): Access denied finding property "vendor.camera.aux.packagelist"
E/libc    ( 8244): Access denied finding property "vendor.camera.fullsize.cameraId"
E/libc    ( 8244): Access denied finding property "vendor.camera.fullsize.packagelist"
E/libc    ( 8244): Access denied finding property "vendor.camera.fullsize.extrapackagelist"
E/libc    ( 8244): Access denied finding property "vendor.camera.fullsize.cameraId"
E/libc    ( 8244): Access denied finding property "vendor.camera.fullsize.packagelist"
E/libc    ( 8244): Access denied finding property "vendor.camera.fullsize.extrapackagelist"
E/libc    ( 8244): Access denied finding property "vendor.camera.aux.packagelist"
E/libc    ( 8244): Access denied finding property "vendor.camera.fullsize.cameraId"
E/libc    ( 8244): Access denied finding property "vendor.camera.fullsize.packagelist"
E/libc    ( 8244): Access denied finding property "vendor.camera.fullsize.extrapackagelist"

In Menifest I have following permissions:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.VIDEO_CAPTURE" />
<uses-permission android:name="android.permission.AUDIO_CAPTURE" />

And android:hardwareAccelerated="true"

Please help. Thanks in advance.

0 Answers
Related