请求麦克风权限 Flutter Web

问题描述 投票:0回答:2

我需要在我的 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);
html flutter flutter-web navigator
2个回答
1
投票

试试这个:

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

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

await navigator.mediaDevices.getUserMedia(mediaConstraints);

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


0
投票
    // ignore: avoid_web_libraries_in_flutter
import 'dart:html';

window.navigator.getUserMedia(audio: true,).then(() { // ignore: avoid_print print('microphone and camera accessed'); } as FutureOr Function(MediaStream value));

© www.soinside.com 2019 - 2024. All rights reserved.