在 Flutter Web 视图中启用摄像头和麦克风

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

我是颤振新手。我正在使用 flutter 中的 Web 视图将现有的 Web 应用程序转换为移动应用程序。目标是首先使其在 Android 中运行。

我正在尝试在 flutter 移动应用程序中启用相机、麦克风选项,该应用程序已经在网络上运行。为此,我使用

webview_flutter:
中的
pubspec.yml
库。

这是我下面使用的简单代码。

main.dart

import 'package:flutter/material.dart';
import 'package:samplewebviewapplication/webview.dart';
 
void main() => runApp(MyApp());
 
// ignore: use_key_in_widget_constructors
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Webview Project',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home:  const WebviewMobileApplication(),
      debugShowCheckedModeBanner: false,
    );
  }
}

webview.dart

import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';
 
class samplewebviewapplication extends StatelessWidget {
  const samplewebviewapplication({Key? key}) : super(key: key);
 
  @override
  Widget build(BuildContext context) {
    return _buildWebView();
  }
 
  Widget _buildWebView() {
    return const WebView(
      javascriptMode: JavascriptMode.unrestricted,
      initialUrl: 'https://webrtc.github.io/samples/src/content/devices/input-output/',
    );
  }
}

安装后生成的APK无法打开摄像头或麦克风选项。我还在

AndoroidManifest.xml
文件中添加了以下内容。

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

当前网络摄像头或麦克风未启用。我发现需要在 flutter 中使用 Permissionhandler 为此。但只是看不到样品来开始。

我之前在社区中看到过这个解决方案这里使用 InAppWebview 但它也没有帮助,代码使用该库呈现了很多问题。让我知道是否有更好的解决方案来处理这个问题。

android flutter
1个回答
1
投票

您需要请求摄像头和麦克风(如果需要)权限,例如使用permission_handler插件:

import 'package:permission_handler/permission_handler.dart';

Future main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Permission.camera.request();
  await Permission.microphone.request();

  runApp(MyApp());
}

此外,您还需要在 AndroidManifest.xml 文件中添加这些权限:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.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" />
© www.soinside.com 2019 - 2024. All rights reserved.