Flutter阿里云课堂互动插件alicloud_impinteraction_classroom的使用

Flutter阿里云课堂互动插件alicloud_impinteraction_classroom的使用

本插件是低代码音视频工厂课堂低代码接入(含UI)(以下简称课堂低代码)的Flutter实现插件。

环境要求

Android环境要求:

  • 系统版本:支持Android 5.0及以上版本。
  • API版本:支持21及以上版本。
  • CPU架构:支持实体设备架构armeabi-v7a、arm64-v8a。
  • 其他:不支持视频采集旋转,不支持USB外接摄像头。

iOS环境要求:

  • 设备类型:支持iPhone和iPad所有型号。
  • CPU架构:支持iOS真机armv7、arm64架构,不支持模拟器i386、X86_64架构。
  • 系统版本:支持iOS 10.0及以上版本。
  • 其他:不支持bitcode,不支持屏幕旋转。
    前提条件:客户端集成前,请确保已经通过控制台创建应用并获取客户端集成需要的信息(应用ID,APP Key,低代码集成服务地址,低代码集成服务密钥)。创建指引请参见创建应用。

开始接入

欲使用本插件,需了解课堂低代码接入流程。

前提条件

客户端集成前,请确保已经通过控制台创建应用并获取客户端集成需要的信息(应用ID,APP Key,低代码集成服务地址,低代码集成服务密钥)。创建指引请参见创建应用。

工程配置

Android工程配置

minSdkVersion配置

工程配置中添加minSdkVersion配置项 (> 21)

android {
    defaultConfig {
        minSdkVersion 21
    }
}

覆盖android:label

在应用的AndroidManifest.xml文件的<application>标签中添加’tools:replace=“android:label”

<application tools:replace="android:label">
</application>

iOS工程配置

支持系统版本

iOS 10.0

  • iOS工程 podFile中:
platform :ios, '10.0'
  • xCode工程配置中: General -> DeploymentInfo -> iOS10.0

关闭bitcode

不支持bitcode——需在工程配置中关闭bitcode

配置设备权限

需要在Xcode工程本身的plist文件中主动配置以下三项:

Key Value
Privacy - Camera Usage Description Use camera
Privacy - Microphone Usage Description Use microphone
Application uses Wi-Fi YES

API使用

完整的代码实现逻辑请参见开源工程。

初始化

需要传入应用配置信息(应用ID,APP Key,低代码集成服务地址,低代码集成服务密钥)。创建指引请参见创建应用。
需注意AppKey区分平台,此插件中需同时传入 appKey4Android (Android平台AppKey)、appKey4iOS(iOS平台AppKey)。

Future<void> initPlugin() async {
  String initResult;
  try {
    var param = {
      'appId': '$appId',
      'appKey4Android': '$appKey4Android',
      'appKey4iOS': '$appKey4iOS',
      'serverHost': '$serverHost',
      'serverSecret': '$serverSecret',
    };

    initResult = await AlicloudImpinteractionClassroom.init(param) ??
        'Unknown init result';
  } on PlatformException {
    initResult = 'Failed to init.';
  }

  if (!mounted) return;

  setState(() {
    _initResult = initResult;
  });
}

进入课堂

Future<void> setUp() async {
  String value;
  try {
    var param = {
      'userId': '$userId',
      'classId': '$classId',
    };
    value = await AlicloudImpinteractionClassroom.setUp(param) ??
        'Unknown setUp result';
  } on PlatformException {
    value = 'Failed to setUp';
  }
  setState(() {
    _setUpResult = value;
  });
}

更多关于Flutter阿里云课堂互动插件alicloud_impinteraction_classroom的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter阿里云课堂互动插件alicloud_impinteraction_classroom的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter项目中使用阿里云课堂互动插件 alicloud_impinteraction_classroom 可以帮助你快速集成阿里云的互动课堂功能。以下是一个基本的使用指南,帮助你了解如何集成和使用该插件。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  alicloud_impinteraction_classroom: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 初始化插件

在使用插件之前,你需要对其进行初始化。通常,你可以在应用的 main 函数中进行初始化。

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化插件
  await AlicloudImpinteractionClassroom.init();

  runApp(MyApp());
}

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

3. 启动课堂

在初始化插件之后,你可以使用插件提供的 API 来启动课堂。通常,你需要提供一些必要的参数,如课堂 ID、用户信息等。

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

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('阿里云课堂互动'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            // 启动课堂
            await AlicloudImpinteractionClassroom.startClassroom(
              classroomId: 'your_classroom_id',
              userId: 'your_user_id',
              userName: 'your_user_name',
              userRole: 'student', // 或 'teacher'
              token: 'your_token',
            );
          },
          child: Text('进入课堂'),
        ),
      ),
    );
  }
}

4. 处理课堂事件

你可以监听课堂中的事件,例如课堂开始、结束、用户加入等。插件通常会提供一些回调方法来处理这些事件。

AlicloudImpinteractionClassroom.setOnClassroomEventListener(
  onClassroomStart: () {
    print('课堂开始');
  },
  onClassroomEnd: () {
    print('课堂结束');
  },
  onUserJoin: (userId) {
    print('用户加入: $userId');
  },
  onUserLeave: (userId) {
    print('用户离开: $userId');
  },
);

5. 退出课堂

当用户退出课堂时,你可以调用 exitClassroom 方法来退出课堂。

await AlicloudImpinteractionClassroom.exitClassroom();
回到顶部