Flutter插件reaper_flutter_plugin使用指南

Flutter插件reaper_flutter_plugin使用指南

reaper_flutter_plugin

Reaper Flutter 插件项目。

开始使用

此项目是一个 Flutter 的插件包起点,属于一种专门包含 Android 和/或 iOS 平台特定实现代码的包。

如需了解如何开始使用 Flutter,请参阅 Flutter 官方文档,其中包含教程、示例、移动开发指南以及完整的 API 参考。


使用示例

以下是一个完整的示例代码,展示了如何在 Flutter 中使用 reaper_flutter_plugin 插件来请求不同类型的广告。

示例代码

import 'dart:convert';
import 'dart:io';

import 'package:flutter/material.dart';
import 'dart:async';
import 'package:reaper_flutter_plugin/callbacks/reaper_ad_callback.dart';
import 'package:reaper_flutter_plugin/reaper_flutter_plugin.dart';
import 'package:reaper_flutter_plugin/bean/reaper_init_sdk_android_bean.dart';
import 'package:reaper_flutter_plugin/bean/reaper_init_sdk_ios_bean.dart';
import 'package:reaper_flutter_plugin/bean/reaper_interaction_bean.dart';
import 'package:reaper_flutter_plugin/bean/reaper_reward_video_bean.dart';
import 'package:reaper_flutter_plugin/bean/reaper_splash_bean.dart';
import 'package:reaper_flutter_plugin/callbacks/reaper_reward_video_ad_callback.dart';

void main() {
  runApp(MaterialApp(
    debugShowCheckedModeBanner: false,
    home: MyApp(),
  ));
}

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

class _MyAppState extends State<MyApp> {
  var reaperFlutterPlugin;

  [@override](/user/override)
  void initState() {
    super.initState();
    reaperFlutterPlugin = ReaperFlutterPlugin.instance;
    initReaperSdk();
    showSplashAd();
  }

  Future<void> initReaperSdk() async {
    var reaperInitSdkBaseBean;
    if (Platform.isAndroid) {
      const RELEASE_APP_ID = "100015";
      const RELEASE_APP_KEY = "3353bea731f341775a015ef3515864c2";
      reaperInitSdkBaseBean = ReaperInitSdkAndroidBean(
          appId: RELEASE_APP_ID, appKey: RELEASE_APP_KEY);
    } else if (Platform.isIOS) {
      const RELEASE_APP_ID = "100070";
      const RELEASE_APP_KEY = "b0cc4ca0b3a0b0f6f7ca99f03010aa51";
      reaperInitSdkBaseBean =
          ReaperInitSdkIosBean(appId: RELEASE_APP_ID, appKey: RELEASE_APP_KEY);
    }
    await reaperFlutterPlugin.initReaperSdk(reaperInitSdkBaseBean);
  }

  Future<void> showSplashAd() async {
    var reaperSplashBean;
    var positionId;
    if (Platform.isAndroid) {
      positionId = "1559";
    } else if (Platform.isIOS) {
      positionId = "1925";
    }
    reaperSplashBean = ReaperSplashBean(positionId: positionId);
    await reaperFlutterPlugin.requestSplashAd(reaperSplashBean);
  }

  Future<void> showInsertAd() async {
    var positionId;
    if (Platform.isAndroid) {
      positionId = "1579";
    } else if (Platform.isIOS) {
      positionId = "1947"; //1746,1904,1947,1742
    }
    var reaperInsertBean = ReaperInteractionBean(
        positionId: positionId, callBack: insertAdCallBack);
    await reaperFlutterPlugin.requestInteractionAd(reaperInsertBean);
  }

  void insertAdCallBack(ReaperAdCallBack data) {
    print("插屏广告回调方法: " + data.method!);
  }

  Future<void> showRewardVideoAd() async {
    var reaperRewardVideoBean;
    var positionId;
    if (Platform.isAndroid) {
      positionId = "1537";
    } else if (Platform.isIOS) {
      positionId = "1743";
    }

    /// 额外参数对象,将发送到您的服务器以验证奖励
    var reaperRewardVideoExtraBean = ReaperRewardVideoExtraBean(
        uid: "1156642",
        rewardVideoType: 2,
        taskId: "70",
        taskAction: "rewardVideo4energy",
        version: "3.42.0_debug",
        adCode: "%%POS_ID%%",
        adSrc: "%%AD_SRC%%");
    var extra = jsonEncode(reaperRewardVideoExtraBean);
    reaperRewardVideoBean = ReaperRewardVideoBean(
        positionId: positionId, extra: extra, callBack: rewardVideoAdCallBack);
    await reaperFlutterPlugin.requestRewardVideoAd(reaperRewardVideoBean);
  }

  void rewardVideoAdCallBack(
      ReaperRewardVideoAdCallBack reaperRewardVideoAdCallBack) {
    print("激励视频广告回调方法: " + reaperRewardVideoAdCallBack.method!);
    if (reaperRewardVideoAdCallBack.method ==
        ReaperRewardVideoAdCallBack.METHOD_ON_REWARD_VERIFY) {
      print(
          "奖励金额: ${reaperRewardVideoAdCallBack.rewardAmount}, "
          "奖励名称: ${reaperRewardVideoAdCallBack.rewardName}, "
          "奖励验证结果: ${reaperRewardVideoAdCallBack.rewardVerify}");
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    Widget getAdSource() {
      return Center(
          child: SingleChildScrollView(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: showInsertAd,
              child: Text("展示插屏广告"),
            ),
            ElevatedButton(
              onPressed: showSplashAd,
              child: Text("展示开屏广告"),
            ),
            ElevatedButton(
              onPressed: showRewardVideoAd,
              child: Text("展示激励视频广告"),
            ),
          ],
        ),
      ));
    }

    return MaterialApp(
        home: Scaffold(
      appBar: AppBar(title: Text('广告测试')),
      body: Center(
        child: getAdSource(),
      ),
    ));
  }
}
1 回复

更多关于Flutter插件reaper_flutter_plugin使用指南的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


reaper_flutter_plugin 是一个用于在 Flutter 应用中与 REAPER(一个数字音频工作站)进行交互的插件。它允许开发者在 Flutter 应用中控制 REAPER 的某些功能,如播放、暂停、录制、获取当前播放位置等。这个插件通常用于需要与音频处理或音乐制作相关的应用程序。

安装 reaper_flutter_plugin

首先,你需要在 pubspec.yaml 文件中添加 reaper_flutter_plugin 依赖:

dependencies:
  flutter:
    sdk: flutter
  reaper_flutter_plugin: ^0.1.0  # 请根据实际情况使用最新版本

然后运行 flutter pub get 来安装插件。

基本使用

  1. 初始化插件

    在使用插件之前,通常需要初始化它。你可以在 main.dart 中进行初始化:

    import 'package:reaper_flutter_plugin/reaper_flutter_plugin.dart';
    
    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await ReaperFlutterPlugin.initialize();
      runApp(MyApp());
    }
  2. 控制播放

    你可以使用插件来控制 REAPER 的播放、暂停和停止功能:

    import 'package:reaper_flutter_plugin/reaper_flutter_plugin.dart';
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: Scaffold(
            appBar: AppBar(title: Text('REAPER Flutter Plugin Example')),
            body: Center(
              child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  ElevatedButton(
                    onPressed: () async {
                      await ReaperFlutterPlugin.play();
                    },
                    child: Text('Play'),
                  ),
                  ElevatedButton(
                    onPressed: () async {
                      await ReaperFlutterPlugin.pause();
                    },
                    child: Text('Pause'),
                  ),
                  ElevatedButton(
                    onPressed: () async {
                      await ReaperFlutterPlugin.stop();
                    },
                    child: Text('Stop'),
                  ),
                ],
              ),
            ),
          ),
        );
      }
    }
  3. 获取当前播放位置

    你可以获取当前播放的位置(以秒为单位):

    ElevatedButton(
      onPressed: () async {
        double position = await ReaperFlutterPlugin.getPlayPosition();
        print('Current play position: $position seconds');
      },
      child: Text('Get Play Position'),
    ),
  4. 录制音频

    你还可以使用插件来控制录制功能:

    ElevatedButton(
      onPressed: () async {
        await ReaperFlutterPlugin.startRecording();
      },
      child: Text('Start Recording'),
    ),
    ElevatedButton(
      onPressed: () async {
        await ReaperFlutterPlugin.stopRecording();
      },
      child: Text('Stop Recording'),
    ),
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!