Flutter灯光秀控制插件flutter_cue_light_show_sdk的使用

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

Flutter灯光秀控制插件flutter_cue_light_show_sdk的使用

获取开始

iOS

安装

CUE SDK 使用 CocoaPods 和 Artifactory 来托管和分发。为了通过 Artifactory 进行身份验证,在您的本地文件系统中,找到或创建文件 ~/.netrc 并插入由 CUE 提供的凭据:

machine cueaudio.jfrog.io
login REPLACE_WITH_YOUR_USERNAME
password REPLACE_WITH_YOUR_PASSWORD
always-auth = true

安装 CocoaPods 和 CocoaPods Artifactory 插件:

brew install cocoapods
gem install cocoapods-art

如果尚未使用 CocoaPods,请参考 CocoaPods Getting Started Guide 获取更多信息。

一旦你的 iOS 项目有了 Podfile,你需要在 Podfile 中添加 “cocoapods-art” 插件。这将允许你访问 Artifactory 上的 CUE 框架。在 Podfile 的顶部添加以下行:

plugin 'cocoapods-art', :sources => [
  'cocoapods-local'
]

然后你还需要在 Podfile 的底部添加以下 post_install 脚本:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
    end
  end
end

接下来,导航到你的 ios 目录并在命令行中执行以下命令以获取 CUE 框架并安装 pod:

pod repo-art update cocoapods-local
pod install

配置

创建文件 ios/Runner/CUEConfig.plist 并将其添加到 Xcode 项目中。此文件包含可以自定义的应用程序参数,并包含 apiKey 和 primaryColor 等重要键。参考以下示例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>primaryColor</key>
    <string>#FF0000</string>
    <key>apiKey</key>
    <string>REPLACE_WITH_YOUR_API_KEY</string>
    <key>hasExit</key>
    <true/>
    <key>hasExitOnHomescreen</key>
    <false/>
    <key>shouldShowNotificationOnboarding</key>
    <false/>
</dict>
</plist>

Android

对于 Android,您需要在 android/app/build.gradle 文件中定义 CUE SDK 的 apiKey 和 primary color,如下所示:

buildTypes {
    all {
        resValue "string", "cue_client_api_key", 'REPLACE_WITH_YOUR_API_KEY'
        resValue "color", "cue_primary_color", '#00AEFF'
    }
}

Flutter 示例

要从应用程序启动 CUE SDK,您可以调用 launchCue() 方法。以下是一个简单的示例:

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

void launchCueLightShow() {
  FlutterCueLightShowSdk.launchCue();
}

为了让 CUE SDK 在启动前获取主题,您可以尽早调用 fetchTheme() 方法。建议在应用启动后立即调用此方法。

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

void fetchCueLightShowTheme() {
    FlutterCueLightShowSdk.fetchTheme();
}

原生示例供参考

有关更多信息,请参阅 iOS 和 Android 的原生演示应用程序及其各自的 README:


以下是一个完整的示例代码,展示了如何在 Flutter 应用程序中使用 flutter_cue_light_show_sdk 插件:

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

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

class MyApp extends StatefulWidget {
  [@override](/user/override)
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  void initState() {
    super.initState();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('CUE Plugin'),
        ),
        body: Column(
          children: <Widget>[
            TextButton(
              child: const Text('Fetch Theme'),
              onPressed: () async {
                try {
                  await FlutterCueLightShowSdk.fetchTheme();
                } catch (e) {
                  print(e);
                }
              },
            ),
            TextButton(
              child: const Text('Launch CUE'),
              onPressed: () async {
                try {
                  await FlutterCueLightShowSdk.launchCue();
                } catch (e) {
                  print(e);
                }
              },
            ),
          ],
        ),
      ),
    );
  }
}

更多关于Flutter灯光秀控制插件flutter_cue_light_show_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter灯光秀控制插件flutter_cue_light_show_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何使用Flutter插件flutter_cue_light_show_sdk来控制灯光秀的基本代码示例。这个示例假设你已经按照官方文档正确地将flutter_cue_light_show_sdk插件添加到了你的Flutter项目中。

首先,确保你的pubspec.yaml文件中已经包含了该插件的依赖项:

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

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

接下来,你可以在Flutter项目中创建一个页面来控制灯光秀。以下是一个基本的示例代码:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Light Show Control',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: LightShowControlPage(),
    );
  }
}

class LightShowControlPage extends StatefulWidget {
  @override
  _LightShowControlPageState createState() => _LightShowControlPageState();
}

class _LightShowControlPageState extends State<LightShowControlPage> {
  late CueLightShowController _lightShowController;

  @override
  void initState() {
    super.initState();
    // 初始化灯光秀控制器
    _lightShowController = CueLightShowController.init();
    // 监听连接状态变化
    _lightShowController.connectionState.listen((state) {
      print('Connection State: $state');
    });
  }

  @override
  void dispose() {
    // 释放资源
    _lightShowController.dispose();
    super.dispose();
  }

  void _startLightShow() async {
    try {
      // 启动灯光秀,这里假设你有一个灯光秀的配置文件
      await _lightShowController.startShowFromJson(
        'path/to/your/lightshow.json',  // 替换为你的灯光秀配置文件路径
      );
    } catch (e) {
      print('Failed to start light show: $e');
    }
  }

  void _stopLightShow() async {
    try {
      // 停止灯光秀
      await _lightShowController.stopShow();
    } catch (e) {
      print('Failed to stop light show: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Light Show Control'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ElevatedButton(
              onPressed: _startLightShow,
              child: Text('Start Light Show'),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _stopLightShow,
              child: Text('Stop Light Show'),
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中:

  1. 我们创建了一个Flutter应用,并在主页LightShowControlPage中初始化了CueLightShowController
  2. 提供了两个按钮,一个用于启动灯光秀,另一个用于停止灯光秀。
  3. _startLightShow方法从JSON文件中加载灯光秀配置并启动灯光秀。你需要提供一个包含灯光秀配置的JSON文件路径。
  4. _stopLightShow方法用于停止当前运行的灯光秀。

请注意,这个示例代码仅展示了基本的启动和停止功能。flutter_cue_light_show_sdk插件可能提供了更多高级功能,比如实时调整灯光效果、处理不同的灯光设备等,你可以参考插件的官方文档来了解这些功能并实现它们。

回到顶部