Flutter阿里云直播互动插件alicloud_impinteraction_liveroom的使用

Flutter阿里云直播互动插件alicloud_impinteraction_liveroom的使用

本插件是低代码音视频工厂直播低代码接入(含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,低代码集成服务地址,低代码集成服务密钥)。创建指引请参见创建应用。

开始接入

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

工程配置

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 = 'unknown';
  try {
    final String paramJson =
        await rootBundle.loadString('assets/demo_param.json');
    final demoParam = await json.decode(paramJson);

    var param = {
      'userId': '$userId',
      'liveId': '$liveId',
      // role参数: anchor代表主播 audience代表观众(当选择观众角色时,liveId必填) 
      'role': choosenRole == indexAnchor ? 'anchor' : 'audience', 
    };
    value = await AlicloudImpinteractionLiveroom.setUp(param) ??
        'Unknown setUp result';
  } on Exception {
    value = 'Failed to setUp';
  }
  setState(() {
    _setUpResult = value;
  });
}

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

1 回复

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


alicloud_impinteraction_liveroom 是阿里云提供的一个 Flutter 插件,用于实现直播互动功能。它可以帮助开发者在 Flutter 应用中快速集成阿里云的互动直播能力,包括音视频通话、消息互动、礼物打赏等功能。

以下是如何在 Flutter 项目中使用 alicloud_impinteraction_liveroom 插件的基本步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 alicloud_impinteraction_liveroom 插件的依赖:

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

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

2. 初始化插件

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

import 'package:alicloud_impinteraction_liveroom/alicloud_impinteraction_liveroom.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化插件
  await AlicloudImpinteractionLiveroom.init();
  
  runApp(MyApp());
}

3. 配置阿里云 SDK

在使用插件之前,你需要在阿里云控制台获取 AppKeyAppSecret,并在代码中进行配置:

await AlicloudImpinteractionLiveroom.setup(
  appKey: 'your_app_key',
  appSecret: 'your_app_secret',
);

4. 创建直播间

你可以使用 AlicloudImpinteractionLiveroom 提供的 API 来创建直播间:

String roomId = await AlicloudImpinteractionLiveroom.createRoom(
  roomName: 'My Live Room',
  userId: 'user123',
);

5. 加入直播间

其他用户可以通过 roomId 加入直播间:

await AlicloudImpinteractionLiveroom.joinRoom(
  roomId: roomId,
  userId: 'user456',
);

6. 实现音视频通话

插件提供了音视频通话的功能,你可以通过以下代码启动和停止音视频通话:

// 启动音视频通话
await AlicloudImpinteractionLiveroom.startCall();

// 停止音视频通话
await AlicloudImpinteractionLiveroom.stopCall();

7. 发送消息

你可以在直播间中发送消息:

await AlicloudImpinteractionLiveroom.sendMessage(
  roomId: roomId,
  userId: 'user123',
  message: 'Hello, everyone!',
);

8. 处理事件

插件提供了多种事件回调,你可以监听这些事件来处理用户加入、离开、消息接收等操作:

AlicloudImpinteractionLiveroom.onEvent.listen((event) {
  switch (event.type) {
    case 'userJoined':
      print('User joined: ${event.data['userId']}');
      break;
    case 'userLeft':
      print('User left: ${event.data['userId']}');
      break;
    case 'messageReceived':
      print('Message received: ${event.data['message']}');
      break;
    // 其他事件处理
  }
});

9. 离开直播间

当用户离开直播间时,可以调用以下方法:

await AlicloudImpinteractionLiveroom.leaveRoom(
  roomId: roomId,
  userId: 'user456',
);

10. 销毁直播间

当直播结束时,可以销毁直播间:

await AlicloudImpinteractionLiveroom.destroyRoom(
  roomId: roomId,
);
回到顶部