Flutter显示器EDID信息获取插件eyedid_flutter的使用

发布于 1周前 作者 h691938207 来自 Flutter

Flutter显示器EDID信息获取插件eyedid_flutter的使用

标题

Eyedid_flutter

内容

Eyedid SDK Flutter插件项目。

Eyedid SDK 是一个眼动追踪库,通过实时计算屏幕上的用户注视点位置来实现。所有计算都在设备本地进行。

开始使用

  1. 安装
    • 检查开发密钥。
    • 创建新的Flutter项目:
      flutter create --platforms android,ios sample_app
      
    • eyedid_flutter 添加到 sample_app 的的 pubspec.yaml 文件中:
      dependencies:
        flutter:
          sdk: flutter
        eyedid_flutter: 1.0.0
      
    • 从终端安装 pub 包:
      flutter pub get
      

2 Android

  • build.gradle 文件中添加 Maven 仓库 URL:
    allprojects {
      repositories {
        ...
        maven {
          url "https://seeso.jfrog.io/artifactory/visualcamp-eyedid-sdk-android-release"
        }
      }
    }
    
  • app/build.gradle 文件中添加以下依赖项:
    dependencies {
      ...
      implementation "camp.visual.eyedid.android.gazetracker:eyedid-gazetracker:{version}"
    }
    
  1. 环境设置(iOS)

    • 向 Info.plist 文件添加权限:
      <key>NSCameraUsageDescription</key>
      <string></string>
      
    • 在 Podfile 中添加 PERMISSION_CAMERA=1
      target.build_configurations.each do |config|
        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
          '$(inherited)',
          ...
          'PERMISSION_CAMERA=1'
        ]
      end
      
    • 从终端安装 pod:
      pod install
      
  2. 获取许可证密钥 Eyedid SDK 需要许可证密钥才能运行。可以从 manage.eyedid.ai 获取密钥。

  3. 如何使用

    • 添加代码检查相机权限:
      Future<void> checkCameraPermission() async {
        _hasCameraPermission = await _eyedidFlutterPlugin.checkCameraPermission();
      }
      
    • 添加请求相机权限的函数:
      Future<void> checkCameraPermission() async {
        _hasCameraPermission = await _eyedidFlutterPlugin.checkCameraPermission();
        if (!_hasCameraPermission) {
          _hasCameraPermission = await _eyedidFlutterPlugin.requestCameraPermission();
        }
      }
      
    • 当通过用户获得相机权限后,通过调用 initGazeTracker 函数开始认证:
      Future<void> initSeeSo() async {
        await checkCameraPermission();
        String requestInitGazeTracker = "failed Request";
        if (_hasCameraPermission) {
          try {
            InitializedResult? initializedResult =
                await _eyedidFlutterPlugin.initGazeTracker(licenseKey: _licenseKey);
          } on PlatformException catch (e) {
            print("Occur PlatformException (${e.message})");
          }
        }
      }
      
    • 认证成功后,开始眼动追踪:
      if (initializedResult!.result) {
        try {
          _eyedidFlutterPlugin.startTracking();
        } on PlatformException catch (e) {
          print("Occur PlatformException (${e.message})");
        }
      }
      
    • 设置监听器接收 MetricsInfo:
      _eyedidFlutterPlugin.getTrackingEvent().listen((event) {
        final info = MetricsInfo(event);
        if (info.gazeInfo.trackingState == TrackingState.success) {
          setState(() {
            _x = info.gazeInfo.gaze.x;
            _y = info.gazeInfo.gaze.y;
            _gazeColor = Colors.green;
          });
        } else {
          setState(() {
            _gazeColor = Colors.red;
          });
        }
      });
      

API

联系我们

如果您有任何问题,请随时联系 development@eyedid.ai

版权声明

版权所有 © VisualCamp。保留所有权利。


示例代码


更多关于Flutter显示器EDID信息获取插件eyedid_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter显示器EDID信息获取插件eyedid_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter应用中使用eyedid_flutter插件来获取显示器EDID(Extended Display Identification Data)信息的代码示例。eyedid_flutter插件允许你访问连接到设备的显示器的EDID信息,这在处理显示设置和调试时非常有用。

首先,确保你已经在pubspec.yaml文件中添加了eyedid_flutter依赖:

dependencies:
  flutter:
    sdk: flutter
  eyedid_flutter: ^最新版本号  # 请替换为实际最新版本号

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

接下来,在你的Flutter应用中,你可以按照以下步骤使用eyedid_flutter插件:

  1. 导入插件

在你的Dart文件中导入eyedid_flutter插件:

import 'package:eyedid_flutter/eyedid_flutter.dart';
  1. 请求并获取EDID信息

下面是一个简单的示例,展示如何使用eyedid_flutter插件来获取EDID信息,并在UI中显示:

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String edidInfo = "";

  @override
  void initState() {
    super.initState();
    _getEDIDInfo();
  }

  Future<void> _getEDIDInfo() async {
    try {
      // 获取EDID信息
      String edidData = await EyedidFlutter.getEDID();
      setState(() {
        edidInfo = edidData;
      });
    } catch (e) {
      setState(() {
        edidInfo = "Error: ${e.message}";
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('EDID Info'),
        ),
        body: Center(
          child: Text(edidInfo),
        ),
      ),
    );
  }
}

在这个示例中,_getEDIDInfo函数使用EyedidFlutter.getEDID()方法来获取显示器的EDID信息,并将其存储在edidInfo字符串中。然后,通过调用setState()方法更新UI,以显示获取到的EDID信息或错误信息。

请注意,由于获取EDID信息可能需要特定的硬件支持和权限,因此在实际应用中,你可能需要根据设备的具体情况和操作系统的权限要求进行适当的调整。此外,如果EyedidFlutter.getEDID()方法在某些设备上不可用或返回错误,请确保检查错误消息并进行适当的错误处理。

希望这个示例能帮助你理解如何在Flutter应用中使用eyedid_flutter插件来获取显示器的EDID信息。

回到顶部