Flutter增强现实滤镜插件argear_flutter_plugin的使用

Flutter增强现实滤镜插件argear_flutter_plugin的使用

ARGear Flutter 插件

ARGear SDK Flutter 插件。此插件支持 Android 和 iOS。ARGear SDK 支持的所有功能也都是此插件支持的功能。

注意事项

  • Flutter 版本 <= 2.10.5 使用此插件版本 0.0.2
  • Flutter 版本 >= 3.0.0 使用此插件版本 0.0.3

开始使用

Android

在应用级别打开 build.gradle 文件,并添加 minSdkVersion 23

defaultConfig {
    minSdkVersion 23
}

打开 AndroidManifest.xml 文件并添加所需的设备权限和功能:

<manifest xmlns:tools="http://schemas.android.com/tools">
    ...
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-feature
            android:glEsVersion="0x00030001"
            android:required="true" />

    <uses-feature
            android:name="android.hardware.camera"
            android:required="true"/>

    <application
            tools:replace="android:label">
    ...
</manifest>
iOS

打开 info.plist 文件并添加以下内容:

  • Privacy - Microphone Usage Description,并在值列中添加备注(NSMicrophoneUsageDescription)
  • Privacy - Camera Usage Description,并在值列中添加备注(NSCameraUsageDescription)
  • Privacy - Photo Library Usage Description,并在值列中添加备注(NSPhotoLibraryUsageDescription, NSPhotoLibraryAddUsageDescription)

使用示例

以下是使用 ARGear Flutter 插件的基本示例:

import 'package:flutter/material.dart';
import 'package:argear_flutter_plugin/argear_flutter_plugin.dart'; // 引入插件

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: SafeArea(
          child: Stack(
            children: [
              ARGearView(
                onArGearViewCreated: _onArGearViewCreated, // 创建回调
                apiUrl: "API_URL", // 从ARGear主页获取
                apiKey: "API_KEY", // 从ARGear主页获取
                secretKey: "SECRET_KEY", // 从ARGear主页获取
                authKey: "AUTH_KEY", // 从ARGear主页获取
                onCallback: (method, arguments) {
                  debugPrint(method.toString() + ' / ' + arguments.toString()); // 回调函数
                },
                onPre: (method, arguments) {
                  debugPrint(method.toString() + ' / ' + arguments.toString()); // 预处理回调
                },
                onComplete: (method, arguments) {
                  debugPrint(method.toString() + ' / ' + arguments.toString()); // 完成回调
                },
              ),
            ],
          ),
        ),
      ),
    );
  }

  void _onArGearViewCreated(ARGearController controller) {
    // 当视图创建时的回调
  }
}

完整示例代码

以下是完整的示例代码,你可以将其复制到你的 Flutter 项目中进行测试:

import 'package:flutter/material.dart';
import 'package:argear_flutter_plugin/argear_flutter_plugin.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: SafeArea(
          child: Stack(
            children: [
              ARGearView(
                onArGearViewCreated: _onArGearViewCreated,
                apiUrl: "API_URL",
                apiKey: "API_KEY",
                secretKey: "SECRET_KEY",
                authKey: "AUTH_KEY",
                onCallback: (method, arguments) {
                  debugPrint(method.toString() + ' / ' + arguments.toString());
                },
                onPre: (method, arguments) {
                  debugPrint(method.toString() + ' / ' + arguments.toString());
                },
                onComplete: (method, arguments) {
                  debugPrint(method.toString() + ' / ' + arguments.toString());
                },
              ),
            ],
          ),
        ),
      ),
    );
  }

  void _onArGearViewCreated(ARGearController controller) {
    // 当视图创建时的回调
  }
}

更多关于Flutter增强现实滤镜插件argear_flutter_plugin的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter增强现实滤镜插件argear_flutter_plugin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


argear_flutter_plugin 是一个用于在 Flutter 应用中集成增强现实(AR)滤镜的插件。它基于 ARGear SDK,提供了丰富的 AR 滤镜效果,如美颜、贴纸、背景替换等。以下是如何在 Flutter 项目中使用 argear_flutter_plugin 的基本步骤:

1. 添加依赖

首先,在你的 pubspec.yaml 文件中添加 argear_flutter_plugin 依赖:

dependencies:
  flutter:
    sdk: flutter
  argear_flutter_plugin: ^latest_version  # 请使用最新版本

然后运行 flutter pub get 来安装依赖。

2. 配置 Android 和 iOS 项目

Android

  1. android/app/build.gradle 文件中,确保使用兼容的 Kotlin 版本:

    android {
        ...
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
        kotlinOptions {
            jvmTarget = '1.8'
        }
    }
    
  2. AndroidManifest.xml 中,添加相机权限:

    <uses-permission android:name="android.permission.CAMERA" />
    

iOS

  1. ios/Podfile 中,确保使用兼容的 iOS 版本:

    platform :ios, '11.0'
    
  2. Info.plist 中,添加相机权限描述:

    <key>NSCameraUsageDescription</key>
    <string>We need access to your camera to apply AR filters.</string>
    

3. 初始化 ARGear 插件

在你的 Flutter 应用中初始化 argear_flutter_plugin

import 'package:argear_flutter_plugin/argear_flutter_plugin.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await ArGearFlutterPlugin.init('<YOUR_ARG_KEY>');  // 替换为你的 ARGear Key
  runApp(MyApp());
}

4. 使用 AR 滤镜

你可以在你的应用中使用 ArGearView 来显示 AR 滤镜效果:

import 'package:flutter/material.dart';
import 'package:argear_flutter_plugin/argear_flutter_plugin.dart';
import 'package:argear_flutter_plugin/argear_view.dart';

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  late ArGearViewController _argearViewController;

  void _onArGearViewCreated(ArGearViewController controller) {
    _argearViewController = controller;
    // 应用滤镜
    _argearViewController.setItem('beauty');
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('AR Filter Example'),
      ),
      body: Center(
        child: ArGearView(
          onArGearViewCreated: _onArGearViewCreated,
        ),
      ),
    );
  }
}

5. 控制 AR 滤镜

你可以通过 ArGearViewController 来控制滤镜的启用、禁用和切换:

// 启用滤镜
_argearViewController.setItem('beauty');

// 禁用滤镜
_argearViewController.clearItem();

// 切换滤镜
_argearViewController.setItem('sticker');

6. 处理权限

确保在应用启动时请求相机权限:

import 'package:permission_handler/permission_handler.dart';

void requestCameraPermission() async {
  var status = await Permission.camera.status;
  if (!status.isGranted) {
    await Permission.camera.request();
  }
}
回到顶部