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
更多关于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();