请求麦克风许可Flutter Web

时间:2020-10-11 16:16:19

标签: html flutter flutter-web navigator

我需要在Flutter Web应用程序中使用麦克风。我尝试了下面的代码,但是只有在我请求'camera'时它才起作用。

final perm = await html.window.navigator.permissions.query({"name": "camera"});
    if (perm.state == "denied") {
      Scaffold.of(context).showSnackBar(SnackBar(
        content: Text("Oops! Camera access denied!"),
        backgroundColor: Colors.orangeAccent,
      ));
      return;
    }
    final stream = await html.window.navigator.getUserMedia(video: true);

1 个答案:

答案 0 :(得分:0)

试试这个:

PermissionStatus permission = await window.navigator.permissions.query({'name': 'microphone'});

现在您知道您是否有权限。 如果有权限则授予,如果没有则提示。(或如果被阻止则拒绝) 但在提示对话框获得许可的情况下,我使用了一个技巧,我第一次发送一个获取 UserMedia 的请求,它显示了请求对话框。

await navigator.mediaDevices.getUserMedia(mediaConstraints);

据我所知,浏览器不支持直接发送权限请求,您应该使用一些技巧来显示如上所示的对话框。